我有一个失败的单元测试,并想知道为什么.我发现测试执行了400次.试图找出导致测试执行多次的原因,我将代码简化为以下内容:
package reproduce;
import org.junit.After;
import org.junit.Test;
import static org.junit.experimental.results.PrintableResult.testResult;
public class FailingTest
{
static int objCount = 0;
public FailingTest()
{
objCount++;
}
@Test
public void test()
{
System.out.println(objCount);
}
@After
public void tearDown()
{
testResult(FailingTest.class); // comment this to run only once
}
}
在我的tearDown()方法中,我试图找出测试的结果,因为我的清理操作可能需要几分钟,所以我只想在发生故障时进行清理,但不是在成功的情况下.
我在code of the verifier rule中发现了testResult()的使用,并认为它对我有用,但如果我的测试运行频繁400次则没有用.
这是实验性PrintableResult的错误,我做错了什么还是有另一种/更简单的方法来实现我的预期结果?
最佳答案 请参阅
Junit PrintableResult source内部testResult,似乎您的测试再次执行,因此它是递归调用.有关获取测试结果的一些有用信息可以在
here找到