我知道 junit 專門用于單元測驗,但請在下面閱讀我的情況。
我有一個用 Java 撰寫的命令列應用程式,但我使用 GraalVM 為 Windows、Linux 和 Mac 編譯我的應用程式的本機二進制檔案。問題是有時我的應用程式的本機二進制檔案的行為會有所不同,具體取決于所使用的作業系統。因此,我想在所有三個作業系統上自動測驗我的命令列應用程式,這樣我就可以確保我很容易注意到某些事情沒有按預期作業。
澄清一下,我希望我可以使用 junit(或其他一些測驗工具)之類的東西通過使用一些引數呼叫我的應用程式的本機二進制檔案來與我的命令列應用程式互動,然后觀察哪些文本被列印出來。如果我的命令列應用程式列印的文本符合我的預期,則測驗通過。
同樣,我知道并理解這不是 junit 的主要用例,但這是我可以讓 junit 做的事情嗎?如果是這樣,如何?如果沒有,您建議我查看哪些其他工具/框架?
謝謝!
uj5u.com熱心網友回復:
命令列回應測驗
您可以通過 java 測驗代碼包含對已部署應用程式的呼叫測驗使用 java 手動運行命令(使用 cmd.exe) https://mkyong.com/java/how-to-execute-shell-command-from-java/
我注意到 Picoli(命令列支持庫)提供了一些關于測驗的建議https://picocli.info/#_black_box_and_white_box_testing
JUnit 允許您執行任何 Java,以便您的測驗代碼可以使用上述 Java 代碼示例。
多作業系統測驗 ENV 支持
如果您不關心不同的環境,則可以通過訪問構建輸出資源等的本地單元測驗來處理它。但是由于您需要在不同的 oses 上進行測驗,那么您也依賴于部署和作業系統,因此它現在是一個系統測驗(可能應該在 TestClassIT.java 集成測驗的命名約定中)。
如果您只關心 Docker 支持的作業系統,那么您可以使用測驗容器在每個作業系統的小型 docker 映像中本地運行您的測驗,但如果您需要 Windows,則意味著您必須通過 VM 在每個作業系統上構建和運行每個測驗。
通常人們使用持續集成服務器在不同的作業系統上構建和測驗。通常這是 Jenkins 檢出 repo,然后 Jenkins 從節點提供作業系統,檢出代碼并編譯和運行命令列測驗。這也將有助于提供報告和儀表板工具。其他 CI/SDLC 工具也有類似的,例如。TFS 等
但是 - 如果您不想再維護一點基礎設施,您可以 只擁有一個腳本,例如。python腳本連接到你控制的機器上的SSH并將本地構建輸出復制到遠程機器并通過復制回完成的junit結果xml檔案來執行和報告測驗?甚至更便宜的有一些云影像,您只需在測驗運行時付費?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/360615.html
下一篇:熱重置Spock中的方法模擬?
