将 Maven 标记中的两个标志添加到 SkipTests

Add two flags in Maven tag to SkipTests

我正在使用 ScalaTest 插件来执行一些 IT 测试。我需要跳过某些管道中的所有测试(Unit, IT),它们只使用标志 ${skipTests} 所以我需要将那个标志用于我所有类型的测试。在本地,有时我只想执行单元测试或 IT 测试,但现在只有一个标志是不可能的。

只注释 IT 插件中的行,但我不喜欢这种容易出错的方法(肯定有人会提交注释行)

                <skipTests>${skipTests}</skipTests>

我在想,如果我可以使用某种 OR 条件在我的本地执行中将一个新标志设置为 true 并将另一个保持为 false ,那就太好了

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

显然这行不通,但我想知道是否有人知道如何做我想做的事。

此致。

已在Prevent unit tests but allow integration tests in 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 : 跳过单元和集成测试

原来的post是https://antoniogoncalves.org/2012/12/13/lets-turn-integration-tests-with-maven-to-a-first-class-citizen/