2017-10-09 64 views
2

我有一個Java項目一個TestNG的測試套裝和,在那裏我有一個TestNG的@Test(invocationCount = 20)與@Test(的DataProvider = 「someList」)一類的方法

@測試(DataProvider =「ListOfObjects」)帶註釋的方法。它提供了大約20行數據的方法(因此該方法運行了20次)。 現在,我想運行這個類2小時(SOAK相關測試的一部分)。平均而言,類需要大約10分鐘跑。所以我正在考慮或運行整個班級12次,因此我想在班級本身上使用@Test(invocationCount = 20)。 任何更好的想法?

回答

0

您可以在一個方法中提取測試,然後創建一個具有相當高的調用計數的測試方法。在該測試方法中,將時間與包含第一次運行時間戳的變量進行比較,如果運行時間超過20分鐘,則跳過測試。

+0

我有超過10種這樣的類和每一類內有這樣的方法的至少3。這些是根據Devicetype(IoT)劃分的。我認爲我不能用一種方法提取測試。 –

0

找到令人尷尬簡單的解決方案: 重複整個測試套裝如下

@Test 
public void RepeatTestSuite() { 
    long startTime = new Date().getTime(); 
    while(!isTestFinished(startTime)) { 

      List<String> suites = new ArrayList<String>(); 
      suites.add("./SOAK_all41.xml"); //path of .xml file to be run-provide complete path 

      TestNG tng = new TestNG(); 
      tng.setTestSuites(suites); 

      tng.run(); //run test suite 
     } 
相關問題