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

更新:同様の状況で確実なバグレポートが見つかりましたが、修正されました。バグを実証するサンプルコードを取得して実行したところ、うまく機能しました。次に、ランナーをjunitparamsランナーに変更し、上記と同じエラーが発生しました。これはランナーのバグかもしれないと思うので、彼らの github で問題を開きました。

4

0 に答える 0