@RunWith(Parameterized.class) を使用して同じ @Test を実行する必要がある数百回の反復があるインスタンスがあります。それぞれに約 10 分かかるため、この全体的なテストには 1 日のほとんどの時間がかかります。
問題は、それを実行しているシステムが約 30 分間しかログを保持していないことです。そのため、テストの途中で反復が失敗した場合、Java が失敗に対して提供するスタック トレース以外には何もありません。これは、テストしているシステムの状態に関する情報をほとんど提供しません。
次のようにテストにルールを追加してみました。
...
@Rule
public TestWatcher logPuller = new TestWatcher() {
@Override
protected void failed(final Throwable e, final Description description)
{
downloadLogs(description);
}
};
...
@Parameters()
public static Collection<Object[]> generateData() {
return Arrays.asList(new Object[][] {.....}
...
@Test
public void runTest(){...}
ただし、これは、失敗した各反復の終わりではなく、すべての反復の最後にログをプルするだけであり、プルされたログから障害がかなり消えているため、ログには何が起こっていたかの兆候は示されません時間。
これを達成し、パラメータ化された入力をそのまま維持する方法はありますか?