maven-assembly-plugin, заставляющий тесты запускаться дважды - PullRequest
4 голосов
/ 03 сентября 2010

У меня есть проект Maven, где я использую плагин сборки. Я обычно создаю свои артефакты, выполняя: mvn clean проверяют сборку: сборка (У меня есть интеграционные тесты, которые я хочу запускать отдельно для модульных тестов).

При запуске подключаемый модуль сборки сам выполняет модульные тесты. Это заставляет их запускаться дважды.

Есть ли способ сказать плагину сборки, чтобы он не запускал тесты? Я испытываю желание выполнить это в два этапа: 1. mvn clean проверяют 2. если предыдущая команда прошла успешно, запустите mvn assembly: assembly -DskipTests = true

Тем не менее, это немного неуклюже и, скорее, единственная команда.

Спасибо, Стивен

1 Ответ

2 голосов
/ 03 сентября 2010

При запуске подключаемый модуль сборки сам выполняет модульное тестирование.Это заставляет их запускаться дважды.

assembly:assembly goal Вызывает выполнение пакета фазы жизненного цикла перед выполнением самого себя и его запуска накомандная строка, таким образом, вызовет любую фазу до package.И это включает в себя фазу test.

Есть ли способ, которым я могу сказать плагину сборки не запускать тесты?

Нет.Я бы предложил создать сборку как часть жизненного цикла сборки, а не вызывать плагин в командной строке, то есть связывать его на определенной фазе.Например:

<project>
 ...
 <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2-beta-5</version>
        <executions>
          <execution>
            <id>create-my-assembly</id>
            <phase>package</phase><!-- change this if not appropriate -->
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              ...
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

И если вы не хотите, чтобы сборка создавалась в случае неудачи ваших интеграционных тестов, привяжите ее на более позднем этапе (например, post-integration-test или verify).

И если вы не хотите, чтобы сборка создавалась систематически, поместите указанную выше конфигурацию в профиль.

...