【问题标题】:Exclude Tests from Maven build从 Maven 构建中排除测试
【发布时间】:2012-08-20 01:19:31
【问题描述】:

当我运行maven clean install 时,它总是执行src/test/java 中的所有测试有没有办法跳过所有测试,只运行简单的构建而不进行任何测试。

我希望我的测试在 src/test/java 中,但我想告诉 maven 不要执行它们。我一直在互联网上寻找类似的东西,但我没有找到答案。

有没有办法做到这一点?

【问题讨论】:

    标签: java maven junit maven-3


    【解决方案1】:

    这里所有的答案都是正确的。准确地说,

    -DskipTests - 编译测试类,但跳过运行它们,
    -Dmaven.test.skip=true - 跳过编译测试文件,也会这样做不要运行它们

    【讨论】:

      【解决方案2】:

      尝试:

      mvn clean install -DskipTests
      

      来源here

      【讨论】:

        【解决方案3】:

        我认为最简单的是:mvn clean package -Dmaven.skip.tests=true

        我认为这是使用的方法,因为它不会让您更改 pom,因此不必对项目进行更改。

        【讨论】:

        【解决方案4】:

        我们使用 Surefire 进行单元测试,使用 Failsafe 进行集成测试。

        跳过所有测试:

        mvn clean package -DskipTests
        

        只跳过故障安全测试:

        mvn clean package -DskipIT
        

        要跳过 Surefire,您当然需要在编译测试类之后显式调用 Failsafe 插件的集成测试目标:

        mvn clean test-compile failsafe:integration-test
        

        【讨论】:

          【解决方案5】:

          当我的测试运行时,我最喜欢的管理方式是创建一个名为 skip-tests 的 Maven 变量并将其默认为 true。然后您可以像这样使用该变量:

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.12.2</version>
              <configuration>
                <skipTests>${skip-tests}</skipTests>
              </configuration>
            </plugin>
          

          这样,您可以在构建时传入变量-Dskip-tests=false,当您不希望它们运行时。当您有集成 单元测试,并且希望只使用一个变量运行或禁用两组测试时,这非常有用。

          【讨论】:

            【解决方案6】:

            你也可以选择使用

            mvn install -Dmaven.test.skip
            

            来自Maven 网站:

            如果你绝对必须,你也可以使用 maven.test.skip 属性来跳过编译测试。 maven.test.skip 受到 Surefire、Failsafe 和 Compiler Plugin 的认可。

            按原样,您甚至不会编译测试源代码。

            【讨论】:

            • 确实是 -DskipTests 对我不起作用,而你的起作用!
            【解决方案7】:

            来自http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html

            <project>
              [...]
              <build>
                <plugins>
                  <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.12.2</version>
                    <configuration>
                      <skipTests>true</skipTests>
                    </configuration>
                  </plugin>
                </plugins>
              </build>
              [...]
            </project>
            

            【讨论】:

              【解决方案8】:

              使用这个

              mvn clean install -DskipTests

              【讨论】:

                猜你喜欢
                • 2013-01-20
                • 1970-01-01
                • 2014-10-06
                • 1970-01-01
                • 2014-10-05
                • 2018-12-10
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多