我是JUnit的新手,但这就是我想要做的事情:
有了上述所有功能,但我无法在 TestResult 对象中看到任何计时信息(完成测试所花费的时间)。这里做错了什么?
上面的方法是因为我需要使用相同的数据在其他测试类上运行它。
DataGenerator testData = new DataGenerator();
MyTestClass myTestClass = new MyTestClass("mytestmethod");
myTestClass.setBaseLine(testData);
try {
TestResult testResult = myTestClass.run();
System.out.println(testResult.wasSuccessful());
} catch (Throwable ex) {
Logger.getLogger(TestSupervisor.class.getName()).log(Level.SEVERE, null, ex);
}
答案 0 :(得分:0)
JUnit 4有一个超时注释,如果测试时间太长,将无法通过测试。
//this test will fail if it takes longer than 1 sec
@Test(timeout = 1000)
public void myTest(){
...
}
我认为您可以通过使用更好的TestFixture解决DataGenerator问题。
如果您使用DataGenerator的所有测试都在同一个测试类中,则可以使用@BeforeClass
和@AfterClass
注释来设置和拆除跨测试使用的数据。 (具有这些注释的那些方法仅在运行所有测试之前/之后调用一次。)