2014-07-07 87 views
0

我希望能夠執行我在另一臺機器上使用java編寫的測試,該測試未另行配置。目前,我必須在安裝了Java SDK和Maven的計算機上打開我的IDE,才能運行我的測試。我想讓其他人在沒有開發環境和沒有任何技術知識的情況下能夠像上面那樣運行我並驗證結果。在另一臺未配置的計算機上運行selenium webdriver測試

如果可能的話,會是這樣:

  • 把我,否則沒有摸過電腦上的可執行文件,
  • 運行可執行文件,
  • 查看測試結果。

如何產生最簡單可行的獨立運行相同的Selenium測試,我可以在我的IDE已經運行可執行

回答

1

這是完全可能的,只要你運行測試的機器有java。以正常方式構建測試,並創建包含所有依賴包的可執行jar。然後你可以在另一臺機器上部署該jar並從那裏運行它。

如果您使用的是maven,那麼shade會爲您構建包含所有依賴關係的jar文件。你也可以使用assembly,儘管它有點困難。

解決方案中不太明顯的部分是使用JUnit runner主類作爲您的可執行文件的主類,您可以根據Oracle's tutorial進行設置。既然你已經在你的jar中擁有了所有的依賴關係,你不必擔心類路徑。所有您需要知道的是要運行的類是org.junit.runner.JUnitCore(see this answer),並且它需要您要運行的帶註釋測試類的名稱。完成所有操作後,只需運行java -jar YourJarFileOfTests.jar yourorg.yourpackage.YourJunitTestClass即可。

如果您想更進一步,並將測試類名稱傳入java -jar,那麼您可以使用create a simple suite來提取所有測試類以方便使用。您甚至可以創建您自己的主類,並使用您的硬編碼includes-all-tests套件代表JUnitCore。一旦你完成了,你可以簡單地運行java -jar YourJarFileOfTests.jar,它會以你的套件類作爲參數調用JUnitCore,而羅伯特是你母親的兄弟。

+0

這聽起來就像我想要做的,但我有點不清楚如何做到這一點。我很容易地添加了maven的陰影插件,但我不知道如何使用它。 至於你給出的關於從命令行運行測試的第一個答案,我也有點不確定如何使用它 - 我是否需要編輯我的代碼?我在哪裏把我的jar的路徑(使用Junit 4.0)。 非常感謝您的幫助 – user2180076

+0

擴展了這個答案。 SO上有很多可執行文件的問題和答案;如果我的回答不夠清楚,請發表評論,並附上指向您發現更有用的答案的鏈接,然後我會更新我的答案並提供參考。 –

+0

我提供給Shade的鏈接包括一個[關於如何在你的pom中激活它的例子](http://maven.apache.org/plugins/maven-shade-plugin/usage.html)。你不需要做其他事情; Shade的默認操作是始終遮蔽你的jar。看看你的陰影之後你的罐子有多大;這是數百Ks更大,我敢打賭。 –

相關問題