2012-09-06 44 views
1

Test.HUnit測試選擇性的運行提供了一個大的紅色按鈕來運行一個測試:由於有必要構建大的測試套件在HUnit

runTestTT :: Test -> IO Counts 

Test不是一個單一的測試,但實際上是一個標記玫瑰樹Assertion葉:

data Test 
    = TestCase Assertion | TestList [Test] | TestLabel String Test 
     -- Defined in `Test.HUnit.Base' 

因此有可能對其進行處理它不是抽象的。一種特別有用的處理是由路徑子樹的提取:

byPath = flip $ foldl f where 
    f (TestList l) = (l !!) 
    f (TestLabel _ t) = const t 
    f t = const t  

因此,例如,我可以運行單個subsuite runTestTT $ byPath [1] tests或通過測試路徑,而不必等待整個套件標識的特定測試runTestTT $ byPath [1,7,3] tests

本土工具的一個缺點是測試路徑沒有保存(縮短)。

Hackage上有這樣的處理助手工具嗎?

回答

2

最接近您的需求似乎是通過HUnit,Quickcheck和其他測試進行抽象的庫和程序,並且擁有自己的測試名稱分組和管理基礎設施,例如, test-framework。它爲您提供了一個採用命令行參數的函數main,其中包括一個允許您指定要運行的測試或測試組的命令行參數(通過在名稱上拼寫)。

相關問題