Maven - 不要在测试类

时间:2018-03-19 16:14:11

标签: java maven

您可以通过以下命令通过命令行跳过执行测试:

mvn install -DskipTests

您也可以跳过执行特定单元测试,如下所示:

mvn -Dtest=\!com.example.ExampleTest#testName install

我知道您也可以使用maven.test.skip属性跳过编译测试

mvn install -Dmaven.test.skip=true

有没有办法从命令行跳过编译特定单元测试?换句话说,我不希望特定测试包含在目标文件夹中(当然,不删除测试代码)。

1 个答案:

答案 0 :(得分:1)

要从Maven编译中排除测试类,您可以在testExclude声明中添加maven-compiler-plugin

例如:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.7.0</version>
    <configuration>
      <!-- use testExcludes to exclude a class from the src/test tree -->
      <testExcludes>
        <testExclude>/path/to/your/class</testExclude>
      </testExcludes>
    </configuration>
</plugin>

更新基于此:

  

Kote>我想要排除单个/多个单元测试,而不是全班

     

glytching>您希望该类由Surefire编译和运行,但您希望编译的表单排除该类中的单个测试(即方法)?

     

Kote>

你可以......

  • 告诉Maven不要使用-DskipTests执行任何测试。
  • 告诉Maven不要使用-Dtest=\!com.example.ExampleTest执行特定的测试用例。
  • 告诉Maven不要使用-Dtest=\!com.example.ExampleTest#testName在特定测试用例中执行特定测试。
  • 告诉Maven不要使用-Dmaven.test.skip编译测试树中的任何类。
  • 告诉Maven不要使用maven-compile-plugin::testExcludes编译测试树中的特定类。

但是你不能告诉Maven不要在一个类中编译特定的方法

听起来你需要conditional compilation solution。或许您应该在编译之前编辑该类。无论哪种方式,在Maven(或Java)中都没有内置支持。