2010-03-18 51 views
5

我們正在使用JUnit - Selenium進行我們的Web測試。我們使用Maven來啓動它們並構建一個可靠的報告。Maven - Selenium - 可能僅運行一個測試

測試套件非常大,需要一段時間才能運行,有時單個測試失敗,因爲瀏覽器無法啓動。我希望能夠使用maven運行SINGLE測試,以便重新測試失敗的測試並更新報告。

我可以使用mvn test -Dtest=TESTCLASSNAME在一個測試類運行所有測試,但由於它需要大約10分鐘,在我們最複雜的測試類運行所有測試,它很可能這是不夠好,其他一些測試將失敗(因爲瀏覽器不會啓動),這會弄亂我的報告。

我知道我可以從Eclipse運行一個測試,但這不是我正在尋找的。

任何幫助將是非常appriciated

回答

2

c_maker的回答描述了要點 - 您應該考慮將大型測試用例分解爲多個測試用例。我建議使用TestNG或JUnit4進行Selenium測試,以便您可以輕鬆地管理整個套件之前的設置,任何測試依賴關係等等。在TestNG中,您還可以使用group將測試分類爲有選擇地運行,以便在您要運行特定類別的測試時不需要將它們設置爲忽略。

3
  1. 你可以有常見的設置,併爲每個測試用例一個子類父類,這樣你可以使用MVN測試-Dtest = TESTCLASSNAME運行單一測試。

  2. 如果您使用的是junit4,那麼您可以使用@Ignore標註您希望忽略的方法。

  3. 如果你沒有需要爲每個測試用例運行的onSetup()和onTeardown(),那麼你可以使你的測試方法是私人的,並且只有一個測試用例可以調用其他測試用例。這樣就很容易根據需要對它們進行評論。

0

如果您正在使用Maven的Surefire Plugin,你可能會遇到這樣的:

mvn -Dtest=TestCircle#mytest test 

其中TestCircle是測試類,而mytest的是測試方法的名稱。

沒有直接關係,但如果你使用的是黃瓜運行情況下,您可以通過這樣運行在一個單一的特徵文件中的單個場景:

mvn -P selenium,chrome -Dcucumber.options="classpath:com/my/package/myfeature.feature:47" clean verify 

其中線47是該方案的開始你希望運行,而「chrome」是您的測試瀏覽器配置文件。

相關問題