带参数化测试的maven -Dsurefire.rerunFailingTestsCount

时间:2016-07-13 12:57:55

标签: java maven junit surefire junitparams

我想用maven重新运行失败的测试。我正在使用surefire.rerunFailingTestsCount:

mvn '-Dtest=LoginTest#loginAsValidUser' '-Dsurefire.rerunFailingTestsCount=1'clean test

然而,在测试失败后,junit在尝试重新运行时再次找不到它们:

org.junit.runner.manipulation.Filter.initializationError(org.junit.runner.manipulation.Filter)
  Run 1: Filter.initializationError »  No tests found matching Method loginAsValidUser[...
  Run 2: Filter.initializationError »  No tests found matching Method loginAsValidUser[...
  Run 3: Filter.initializationError »  No tests found matching Method loginAsValidUser[...

根据maven documentation,测试方法也可以用[*]表示,所以我试过

mvn '-Dtest=LoginTest#loginAsValidUser[*]' -Dsurefire.rerunFailingTestsCount=1 clean test

和指定测试类/方法名称的不同变体,但结果是相同的。 是什么原因引起了这个?

maven-surefire插件版本为2.19.1,junit版本为4.12,junitparams版本为1.0.5。

测试类看起来像这样:

@RunWith(JUnitParamsRunner.class)
public class LoginTest {

    @Test
    @FileParameters(value = "src/main/resources/login_data.csv")
    @TestCaseName("{method}[{index}]")
    public void loginAsValidUser(String username, String password) {
        //test
    }
}

更新:我发现surefire bugreport的情况类似,但已修复。我拿了示例代码来演示错误并运行它,效果很好。然后我改变了跑步者到junitparams跑步者,得到了同样的错误,如上所述。我想这可能是跑步者的一个错误,所以我在他们的github上打开了issue

0 个答案:

没有答案