Добавьте два флага в теге Maven в SkipTests - PullRequest
2 голосов
/ 22 марта 2019

Я использую плагин ScalaTest для выполнения некоторых ИТ-тестов.Мне нужно пропустить весь тест (Unit, IT) в некоторых конвейерах, и они используют только флаг ${skipTests}, поэтому мне нужно использовать этот флаг для всех моих типов тестирования.Иногда я хочу просто выполнить локальный, модульный или ИТ-тест, но теперь, имея только один флаг, это невозможно.

Только прокомментируйте строку в плагине IT, это будет работать, но мне это не нравитсясклонность к ошибкам (кто-то обязательно передаст строку комментария)

                <skipTests>${skipTests}</skipTests>

Я думал, что было бы здорово, если бы я мог использовать какое-то условие OR для установки нового флага в моих локальных исполненияхкак истинное, а другое - как ложное

            <skipTests>${skipTests} || ${skipItTests}</skipTests>

Очевидно, что это не работает, но мне было интересно, если кто-нибудь знает способ сделать то, что я хочу.

С уважением.

1 Ответ

2 голосов
/ 22 марта 2019

Ответ уже получен в Запретить модульные тесты, но разрешить интеграционные тесты в Maven

С первого взгляда вы можете использовать следующий фрагмент кода pom для запуска любой комбинации (UNIT, IT)тесты.

<project>
  ...
  <properties>
    <skipTests>false</skipTests>
    <skipITs>${skipTests}</skipITs>
    <skipUTs>${skipTests}</skipUTs>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.12.4</version> <!-- use appropriate version -->
        <configuration>
          <skipTests>${skipTests}</skipTests>
          <skipITs>${skipITs}</skipITs>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.4</version> <!-- use appropriate version -->
        <configuration>
          <skipTests>${skipUTs}</skipTests>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

И использование

  • mvn install -DskipUTs: пропускает юнит-тесты
  • mvn install -DskipITs: пропускает интеграционные тесты
  • mvn install -DskipTests: Пропускает юнит-тесты и интеграционные тесты

Исходное сообщение https://antoniogoncalves.org/2012/12/13/lets-turn-integration-tests-with-maven-to-a-first-class-citizen/

...