2013-08-25 68 views
0

我是新來的JUnit,但是這是我想做的事:如何從JUnit的TestResult獲取測試的運行執行時間細節?

  • 產生與我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); 
    } 
+0

你是什麼意思的時間信息?你的意思是測試運行了多長時間? – dkatzel

+0

是的。我正在編輯這個問題來補充這一點。 THKS – gextra

回答

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註釋來設置和拆除跨測試使用的數據。 (這些註釋的方法在所有測試運行之前/之後僅被調用一次)。

相關問題