Используйте альтернативный профиль Maven на этапе тестирования - PullRequest
3 голосов
/ 15 мая 2009

Я пытаюсь создать приложение, начиная с Appfuse Archetype, но у меня возникают странные проблемы. На этот раз я хотел бы использовать hsqldb для автоматических модульных тестов и интеграционных тестов, а также mysql db для моего ручного тестирования, чтобы я мог легко манипулировать данными, когда это необходимо, поэтому было бы неплохо автоматически переключать профили во время этапы тестирования. Есть ли способ сделать это?

Ответы [ 2 ]

7 голосов
/ 15 мая 2009

Я не уверен, что это именно то, что вы просите, но вы можете сделать следующее, чтобы настроить несколько фильтров для вашего проекта Maven.

<filters>
  <filter>/your/path/filter-${env}.properties</filter>
</filters>

Таким образом, вы можете настроить несколько профилей, используя:

<profiles>
  <profile>
    <id>local</id>
    <properties>
      <env>local</env>
    </properties>
  </profile>
  <profile>
    <id>test</id>
    <properties>
      <env>test</env>
    </properties>
  </profile>
</profiles>

Затем вы можете запустить сборку с соответствующим файлом свойств, используя:

mvn -P <profile id>

Для этого потребуется наличие файлов свойств, расположенных по адресу:

/your/path/filter-local.properties
/your/path/filter-test.properties
2 голосов
/ 23 марта 2012

Не уверен, что это может вам помочь, но вы можете указать альтернативные файлы ресурсов в папке / src / test / resources, которые переопределяют файлы в / src / main / resources, только при запуске тестов.

Здесь я определяю альтернативный файл placeholder.properties, чтобы указать другое соединение БД, которое будет использоваться на этапе тестирования.

...