我有一个带有@Ignore属性的JUnit测试,例如 -
public class HealthCareGov
{
@Test
@Ignore
public void performancetest()
{
// stuff
}
}
在大多数IDE(例如IntelliJ)中,即使存在@Ignore属性,也可以通过选择方法名称来强制运行此测试。我猜Eclipse也允许这个吗?
但是,当我尝试通过执行以下操作在Maven中执行相同的操作时 -
mvn -Dtest=HealthCareGov#performancetest test
看来Maven跳过了测试。这是输出 -
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running HealthCareGov
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.032 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1
我可以使用什么Maven命令行来强制执行此测试以重现我的IDE生成的行为?修改Java源代码不是一种选择。
答案 0 :(得分:7)
这可以添加到测试中。
@IfProfileValue(name="test-profile", value="IntegrationTest")
public class PendingChangesITCase extends AbstractControllerIntegrationTest {
...
}
要选择要执行的测试,只需将值添加到配置文件以执行集成测试。
<properties>
<test-profile>IntegrationTest</test-profile>
</properties>
此外,您可以使用命令行设置测试配置文件变量:
mvn -Dtest-profile=IntegrationTest
答案 1 :(得分:1)