2014-11-20 145 views
0

我在Mac 10.9.5上使用Maven 3.2.3,SureFire 2.17,JUnit 4.11和Eclipse Juno。我注意到,當我通過命令行運行我的JUnit測試強制Eclipse按照Maven運行它們的順序運行JUnit測試

mvn test -Dtest=MyTest 

以不同的順序,當我在Eclipse中運行它們比運行文件「MyTest.java」中的單獨測試(通過右鍵單擊類名並選擇「Run As - > JUnit Test」)。如何讓Eclipse按照它們在命令行上運行的相同順序運行測試?

謝謝 - 戴夫

+2

如果您的測試運行順序影響結果,則表明您在測試之間存在依賴關係,這是代碼異味。如果是這種情況,則重構是明智的。 – Asaph 2014-11-20 22:01:13

+0

我很欣賞你的建議。但那不是我的問題。 – 2014-11-20 22:14:53

+0

爲什麼你在意測試運行的順序? – Asaph 2014-11-20 22:40:12

回答

0

JUnit測試運行的順序不被設計來保證,如JUnit FAQ page。這是提到做是爲了促進測試獨立性的概念,這將確保該測試將清晰和獨立地測試他們的案例,並且還可以簡化可維護性。

這意味着當您在Eclipse中運行測試時,訂單無法保證並且不斷變化。在"Can I change JUnit execution order?"中解釋瞭如何修復訂單,儘管它不是一個好的做法。

相關問題