簡體   English   中英

如何在JUnit測試類中運行(或更改)特定測試方法的順序?

[英]How can I run (or change the order of) specific test-methods in a JUnit test class?

我對Java很新。 我構建了一個JUnit測試類,在這個文件中有許多測試方法。 當我運行這個類(在NetBeans中)時,它按順序運行類中的每個測試方法。

問題1:如何在此類中僅運行測試方法的特定子集? (可能的答案:在@Test上面寫@Ignore我希望忽略的測試。但是,如果我想指出我想要運行哪些測試方法而不是我想忽略的測試方法,有沒有更方便的方法呢? )

問題2:是否有一種簡單的方法可以更改各種測試方法的運行順序?

謝謝。

您應該閱讀有關TestSuite的內容。 它們允許對單元測試方法進行分組和訂購。 這是本文的摘錄

“通過創建測試套件,可以匯總JUnit測試類以按特定順序運行。

編輯:這是一個顯示它是多么簡單的例子:

 public static Test suite() { 
      TestSuite suite = new TestSuite("Sample Tests");

      suite.addTest(new SampleTest("testmethod3"));
      suite.addTest(new SampleTest("testmethod5"));

      return suite; 
 }

這個答案告訴你如何做到這一點。 隨機化測試運行的順序是個好主意!

就像dom farr州的評論一樣,每個單元測試都應該能夠獨立運行。 在測試運行之后或之前應該沒有殘留物和沒有給定的要求。 所有單元測試都應以任何順序或任何子集運行。

擁有或生成測試用例 - >測試列表的地圖並隨后執行所有測試並不是一個糟糕的主意。

有很多方法,但這取決於您的具體需求。 例如,您可以將每個測試方法拆分為單獨的測試類,然后將它們安排在不同的測試套件中(如果需要,可以允許套件中的方法重疊)。 或者,更簡單的解決方案是在您的類中使用一種測試方法使您的測試方法成為普通類方法,並按特定順序調用它們。 你想要它們被動態地稱為?

我也沒有長時間使用Java,但據我所知,沒有一種方便的方法來標記執行而不是忽略的方法。 相反,我認為這可以使用IDE實現。 當我想在Eclipse中執行此操作時,我可以使用junit視圖通過單擊它們來運行單個測試。 我想在Netbeans中有類似的東西。

我不知道重新排序測試執行的簡單方法。 Eclipse有一個按鈕可以首先使用失敗的測試重新運行測試,但聽起來你想要更通用的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM