我正在开发一个Java / Maven项目。我使用mvn test
来运行我的测试套件。但是,在这种情况下,所有断言都被启用。不幸的是,这增加了从log(n)
到n^2
的某些操作的时间,这是相当不方便的。更重要的是,操作是在依赖项packageA
中定义的,而我在packageB
上工作。使用普通Java我可以添加-ea:packageB...
以仅启用我实际需要的断言。是否可以使用pom.xml
的内容或mvn
的命令行参数来实现此行为?我知道我可以禁用所有断言,但我宁愿将断言保存在我实际正在处理的包中......
答案 0 :(得分:0)
您可以使用surefire-plugin实现这一目标。但首先,您需要为不同的包指定配置文件。
使用surefire-plugin,您可以使用通配符或正则表达式排除或包含包。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<includes>
<include>%regex[.*[Cat|Dog].*Test.*]</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<excludes>
<exclude>**/TestCircle.java</exclude>
<exclude>**/TestSquare.java</exclude>
</excludes>
</configuration>
</plugin>
您可以找到更详细的信息on this site。
答案 1 :(得分:0)
我使用这些属性:
<maven.test.skip>false</maven.test.skip>
<maven.test.failure.ignore>false</maven.test.failure.ignore>
然后你可以按原样保留Asserts,但是在Assert.fail()上将这些属性更改为fail,或者根本不进行测试。
或类似地使用CMD的额外参数,例如添加:
-Dmaven.test.skip =真