3

我想用 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文档,测试方法也可以用[*]表示,所以我尝试了

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
    }
}

更新:我发现了类似情况的肯定错误报告,但已修复。我获取了演示错误的示例代码并运行它,运行良好。然后我将 runner 更改为 junitparams runner 并得到与上述相同的错误。我想这可能是跑步者的错误,所以我在他们的 github 上打开了问题。

4

0 回答 0