[英]HUnit testing with file dependent tests
我有一个词法分析器,希望对一组已知的良好测试用例进行测试。 这些子目录中的./test_src/举行,每个人都有一个扩展测试名 .TXT
我想做的是获取所有相关测试用例的路径:
getTestFiles :: IO [FilePath]
find always (extension ==? ".txt") "/path/to/test_src/"
并创建一个包含HUnit TestCases的HUnit TestList,每个HCas TestCases都具有通过函数沿以下行创建的声明
testMyLexer :: IO FilePath -> Assertion
类似于
myTest :: [IO FilePath] -> Test
myTest = TestList $ fmap TestCase $ fmap testMyLexer
我的方法似乎失败的地方在于,这似乎首先需要以下功能,然后映射其结果:
unableToDoThis :: IO [FilePath] -> [IO FilePath]
我非常怀疑我所遵循的方法是不可能的,因为它似乎需要转义IO Monad,所以我要问的是:
通常,如果将IO a
值包装在参数中,那么您可能做错了。 testMyLexer
和myTest
都可以是纯myTest
,因此可以代替
testMyLexer :: IO FilePath -> Assertion
myTest :: [IO FilePath] -> Test
做
testMyLexer :: FilePath -> Assertion
myTest :: [FilePath] -> Test
然后,只需使用getTestFiles
来提取您的[FilePath]
:
do
files <- getTestFiles
runTestTT $ myTest files
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.