短缺問題
的子集可以選擇,在運行時,單元測試將會怎樣使用Python的unittest模塊自動發現方法時運行。運行自動發現蟒蛇單元測試
背景
我使用的單元測試模塊運行外部的系統上的系統測試。請參閱下面的示例sudo-testcase。 unittest模塊允許我創建一個可以使用unittest的testrunner運行的任意數量的測試用例。我一直在使用這種方法大約持續使用6個月,它很好地完成了非常的。
在這個時候,我想嘗試使這個更通用和用戶友好。對於我現在運行的所有測試套件,我已經硬編碼了哪些測試必須針對每個系統運行。這對於未經測試的系統來說很好,但是當測試失敗時(用戶連接到錯誤的測試點等),他們必須重新運行整個測試套件。由於一些完整的套房可能需要長達20分鐘,所以這不是理想的地方。
我知道有可能創建自定義可以定義要運行哪些測試的測試用例構建器。我的問題是,有數百個可以運行的測試用例,如果測試用例名稱發生變化等,將會出現一個噩夢......
我希望使用nose或內置unittest模塊爲了達成這個。對於這兩個選項來說,發現部分似乎相當簡單,但我的問題是隻有選擇要運行的測試用例子集的方法是定義存在於測試用例名稱中的模式。這意味着我仍然必須對模式列表進行硬編碼以定義要運行的測試用例。因此,如果我必須對這個列表進行硬編碼,那麼使用自動發現有什麼意義(請注意這是一個修辭問題)?
我的最終目標是通過一種通用的方式來選擇在執行過程中運行的單元測試,以用戶可以編輯的複選框或文本字段的形式。理想的解決方案是使用Python 2.7,需要運行在Windows,OSX和Linux上。
編輯
爲了澄清,我不想工具生成的選擇或複選框列表。理想情況下,該工具將返回目錄中所有測試的列表,包括完整路徑和測試用例所屬的Suite(如果有)。通過這個列表,我可以創建用戶與之交互的複選框或組合框,並將這些測試傳送到測試套件中以便運行。
例測試用例
test_measure_5v_reference
1) Connect to DC power supply via GPIB
2) Set DC voltage to 12.0 V
3) Connect to a Digital Multimeter via GPIB
4) Measure/Record the voltage at a given 5V reference test point
5) Use unittest's assert functions to make sure the value is within tolerance
這可以工作,但這不能擴展,而不會炸燬文件系統。我可能會嘗試它的小項目,但我仍然希望找到一個通用的可擴展解決方案。 –