0

我是 JUnit 的新手,但这是我想要做的:

  • 使用我的 DataGenerator 类生成数据;
  • 实例化一个测试类 MyTestClass
  • 将测试数据生成数据传给MyTestClass(第一步)
  • 运行测试
  • 收集 TestResult 结果

使用上述方法,一切正常,但我在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);
    }
4

1 回答 1

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注释来设置和拆除跨测试使用的数据。(那些带有这些注释的方法在所有测试运行之前/之后只调用一次)。

于 2013-08-25T19:24:40.460 回答