2

Test.HUnitテストを実行するための大きな赤いボタンを提供します。

runTestTT :: Test -> IO Counts

大規模なテストスイートを構築する必要があるため、これTestは単一のテストではなく、実際にAssertionは葉にラベルが付けられたバラの木です。

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

抽象的ではないので、処理することができます。特に有用な処理の1つは、パスによるサブツリーの抽出です。

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

したがって、たとえば、スイート全体を待つ代わりに、単一のサブスイートrunTestTT $ byPath [1] testsまたはテストパスによって識別される特定のテストを実行できます。runTestTT $ byPath [1,7,3] tests

自家製ツールの欠点の1つは、テストパスが保持されない(短縮される)ことです。

そのような処理ヘルパーツールはすでにHackageにありますか?

4

1 に答える 1