acme-proj/ test/ unit/ component/ system/ conf/ |
為運行這些測試,必需至少定義四個 Ant 任務:為單元測試定義一個,為組件測試定義一個,依此類推。第 4 項任務是一個方便的任務,它運行所有三種測試類型(如 清單 3 所示)。
該 JUnit 任務和 清單 2中定義的任務非常相似。所不同的是該任務 batchtest
方面的一個細節。此時,fileset
指向一個具體的目錄。在清單 5 的例子中,它指向 unit 目錄。
清單 5. 用于運行所有單元測試的 JUnit 任務的批量測試方面
<batchtest todir="${testreportdir}"> <fileset dir="test/unit"> <include name="**/**Test.java"/> </fileset> </batchtest> |
請注意,這個測試只運行 test/unit 目錄下的所有測試。當創建了新的單元測試(或針對此問題的任何其他測試),只需要將它們放到該目錄下,一切就準備妥當了!比起需要將一行新代碼添加到 TestSuite
文件并進行重新編譯,這樣還是多少簡單了一點。
回到最初的場景中,假設您和您的團隊認為使用特定目錄是針對構建時間問題的最具擴展性的解決方案。該任務最困難的地方是檢查及分配測試類型。您重構了 Ant 構建文件并創建了 4 項新任務(為單個的測試類型創建了三項,為運行所有這些測試類型創建了一項)。不僅如此,您還修改了 CruiseControl,從而只在(代碼)簽入時運行真正的單元測試,并以小時為基礎運行組件測試。在進一步檢查之后,發現系統測試也可以按小時運行,所以您創建了一個將組件測試和系統測試一起運行的額外任務。
最終結果是,測試每天都運行很多次,您的團隊能夠更快地發現集成錯誤 —— 通常在幾個小時之內。
文章來源于領測軟件測試網 http://www.kjueaiud.com/