Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 在HUnit中选择运行测试_Unit Testing_Haskell - Fatal编程技术网

Unit testing 在HUnit中选择运行测试

Unit testing 在HUnit中选择运行测试,unit-testing,haskell,Unit Testing,Haskell,Test.HUnit提供了一个红色的大按钮来运行测试: runTestTT :: Test -> IO Counts 由于需要构造大型测试套件,test不是一个单独的测试,而是一个带有标签的玫瑰树,叶子中有断言: data Test = TestCase Assertion | TestList [Test] | TestLabel String Test -- Defined in `Test.HUnit.Base' 它不是抽象的,所以可以处理它。一个特别有用的处

Test.HUnit
提供了一个红色的大按钮来运行测试:

runTestTT :: Test -> IO Counts
由于需要构造大型测试套件,
test
不是一个单独的测试,而是一个带有标签的玫瑰树,叶子中有
断言

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     
因此,例如,我可以运行单个子套件
runTestTT$byPath[1]测试
,或者运行由测试路径标识的特定测试
runTestTT$byPath[1,7,3]测试
,而不是等待整个套件

自制工具的一个缺点是测试路径没有被保留(缩短)


Hackage上已经有这样的处理帮助工具了吗?

最接近您需要的似乎是对HUnit、Quickcheck和其他测试进行抽象的库和程序,它们有自己的测试名称分组和管理基础设施,例如。它为您提供了一个
main
函数,该函数接受命令行参数,包括一个允许您指定要运行的测试或测试组的参数(通过在名称上全局搜索)