Как установить системное свойство Java на этапе тестирования

#eclipse #maven #tycho

#eclipse #maven #tycho

Вопрос:

извините за глупый вопрос, но я действительно новичок в maven и не могу найти никакого ответа (я пытался, я что-то нашел, но я этого не понял ;-))

Проблема заключается в следующем:

  • Я создаю свое (eclipse) RCP-приложение с использованием tycho
  • Мои плагины полагаются на системное свойство для включения режима отладки (по умолчанию он отключен, и он включается при запуске программы с «-Ddebug= true» в качестве аргумента java)
  • У меня есть несколько тестов (упакованных в виде фрагмента, как предлагается везде)
  • Я хочу, чтобы системное свойство устанавливалось при запуске моих тестов

Как я могу поручить maven это сделать?

Ответ №1:

попробуйте

 <plugins>
  <plugin>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>tycho-surefire-plugin</artifactId>
    <version>${tycho-version}</version>
    <configuration>
      <systemProperties>
          <key>value</key>
      </systemProperties>
    </configuration>
  </plugin>
</plugins>
  

Ответ №2:

Вам следует обновить конфигурацию вашего тестового плагина в вашем Maven pom:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.10</version>
        <configuration>
           <argLine>-Ddebug=true</argLine>
        </configuration>
      </plugin>
    </plugins>
  </build>
  

Комментарии:

1. Это не работает… Я думаю, что tycho не использует «обычные» раннеры junit, потому что ему необходимо запускать тесты в контейнере OSGi…

Ответ №3:

Tycho использует surefire. Вам нужно использовать systemPropertyValues элемент конфигурации surefire.