我有一組命令行應用程序,其測試我想自動化。這是爲了測試IaaS雲設置,因此測試將調用啓動新的虛擬機實例(例如euca-run-instances),然後確保它們可以通過ssh登錄,甚至可以在遠程計算機上運行一些簡單的應用程序。自動化命令行應用程序的集成測試
是否有任何框架設計來做這種測試?我知道有框架可以使運行單元測試變得更容易,而且我知道像(p)這樣的東西可以與諸如ssh之類的東西進行交互,但我不知道處於這兩個世界交匯處的工具。
我有一組命令行應用程序,其測試我想自動化。這是爲了測試IaaS雲設置,因此測試將調用啓動新的虛擬機實例(例如euca-run-instances),然後確保它們可以通過ssh登錄,甚至可以在遠程計算機上運行一些簡單的應用程序。自動化命令行應用程序的集成測試
是否有任何框架設計來做這種測試?我知道有框架可以使運行單元測試變得更容易,而且我知道像(p)這樣的東西可以與諸如ssh之類的東西進行交互,但我不知道處於這兩個世界交匯處的工具。
這裏是我的提示: 您可以使用中央主機並運行帶有ssh密鑰文件授權的「ssh user @ host cmd」 因此,您可以更輕鬆地控制多個主機。
您需要調用的所有東西都是面向命令行的?沒有比bash更進一步。恐怕沒有圖書館可以使它比現在更普遍。
你甚至可以做遠程測試:
$ ssh [email protected] /bin/false ; echo $?
1
$ ssh [email protected] /bin/true ; echo $?
0
這意味着你可以編寫一個腳本,上傳到服務器上,遠程執行它,使用它的退出代碼來確定是否成功(0)或失敗(1 )。
當然,這並不能解決你所有的問題。確切的測試策略取決於你的情況。分工你的工作,讓你的生活更輕鬆。
有一個看看shunit,爲自己節省編寫自己的單元測試框架的麻煩。雖然我不能真正展開shunit。我寫了自己的工具後才發現它。
我已經使用pexpect和pyhton的unittest測試了LDAP系統與客戶端服務器的集成,
我們圍繞pexepect的子pxssh編寫了一個包裝類,它明確地圍繞着ssh handeling。我們將函數寫入pxssh類,它不僅可以捕獲輸出,還可以返回$的值?命令結束後。
當我們轉向單元測試時,這給了我們靈活性。測試,然後能夠寫入,以便我們可以測試輸出條件甚至是返回值。
我們在那裏能夠單元測試:
作爲這項工作的一個後果,我們改編了pxssh cla ss重新IP /解析器超過1000個Linux主機,這使得我們的建設移動更容易。對不起,我不能分享工作擁有它的代碼更多細節(雖然我希望讓他們釋放它)
Cram似乎有這個功能。給予CLI使用
標籤 '殼' 不明確,你的意思做這在Windows或的Linux/Unix。爲操作系統和外殼名稱添加標籤以更多地關注您的問題。 – shellter
添加標籤。忘記了不是每個人都住在Unix領域。 –
爲什麼期望不能滿足您的需求?我認爲,使用exec,spawn和friends,你擁有所需的所有命令行功能? – thiton