這是完全可能的,只要你運行測試的機器有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,而羅伯特是你母親的兄弟。
這聽起來就像我想要做的,但我有點不清楚如何做到這一點。我很容易地添加了maven的陰影插件,但我不知道如何使用它。 至於你給出的關於從命令行運行測試的第一個答案,我也有點不確定如何使用它 - 我是否需要編輯我的代碼?我在哪裏把我的jar的路徑(使用Junit 4.0)。 非常感謝您的幫助 – user2180076
擴展了這個答案。 SO上有很多可執行文件的問題和答案;如果我的回答不夠清楚,請發表評論,並附上指向您發現更有用的答案的鏈接,然後我會更新我的答案並提供參考。 –
我提供給Shade的鏈接包括一個[關於如何在你的pom中激活它的例子](http://maven.apache.org/plugins/maven-shade-plugin/usage.html)。你不需要做其他事情; Shade的默認操作是始終遮蔽你的jar。看看你的陰影之後你的罐子有多大;這是數百Ks更大,我敢打賭。 –