我正在开发一个使用 Maven 编写的项目。
如果我做
mvn clean install
然后我希望它会在/test
forder 下运行所有单元测试。
我重定向了构建过程并存储到一个输出文件中,并试图通过名称找出单元测试。但是,我无法找到一些单元测试。似乎某些单元测试实际上并未在构建过程中执行。
我的问题是我如何知道将在构建过程中执行的单元测试的选择。
您可以尝试在命令行中显式命名组,如下所示:
mvn clean install -Dtest.groups="unit,integration"
或者干脆
mvn test -Dtest.groups="unit,integration"
这是我每天使用的一个例子。我的测试要么在单元中,要么在集成组中。如果您希望运行所有(或部分)测试而不需要明确指定要使用的组,您必须修改您的 maven 配置。
Maven 中的单元测试将按其名称选择,该名称应遵循命名约定
<includes>
<include>**/*Test*.java</include>
<include>**/*Test.java</include>
<include>**/*TestCase.java</include>
</includes>
此外,您需要将测试放在默认位置src/test/java/。
您可以使用以下命令控制仅运行一个测试:
mvn -Dtest=MyTest test
运行集成测试是在集成测试阶段处理的maven-failsafe-plugin的工作。集成测试的命名约定是:
<includes>
<include>**/*IT*.java</include>
<include>**/*IT.java</include>
<include>**/*ITCase.java</include>
</includes>
要运行集成测试,您需要为 maven-failsafe-plugin 添加配置部分。