Haskell Cabal QuickCheck集成

Kas*_*per 9 haskell cabal-install

我一直在尝试使用cabal-install作为一种构建方式,更重要的是,测试我的haskell项目,与Maven在Java项目中使用的方式有点相似,主要是因为它似乎也是一种好方法.集成在Jenkins或ci左右,从某种意义上说它似乎非常可靠,你不需要开发环境等设置来检查和确认代码是否正在编译和纠正.

无论如何,我正在使用QuickCheck和HUnit.在另一篇文章 在这里堆栈交流我发现了一个很好的方式,通过使用功能测试中Distribution.TestSuite.HUnit建立在我的测试模块暴露试验阵列整合HUnit和阴谋.作品.

我尝试使用quickcheck进行相同的设置,

    import qualified Distribution.TestSuite.QuickCheck2 as CabalQuickCheck

    alwaysFalseOneArg::Int->(Int,Int)
    alwaysFalseOneArg x = (x,x)

    quickCheckPropOneArg = \s->let (a,b)=alwaysFalseOneArg s  in a==b && a/=b

    cabalQCTest = CabalQuickCheck.test "test" quickCheckPropOneArg

    tests=cabalQCTest:[]
Run Code Online (Sandbox Code Playgroud)

我想看到这个测试失败了.

我与HUnit设置的cabal文件,HUnit测试正在运行,失败或没有失败,因为他们应该.但是,如果我使用相同的设置来执行quickcheck测试,cabal告诉我它确实找到了一个测试套件,但它没有测试.我尝试了在Distribution.TestSuite.QuickCheck2 网站上提到的方法,但是他们似乎没有提到如何公开测试,我似乎没有设法做到这一点.我现在有点不知所措,我可以用quickcheck本身运行那些quickcheck测试,但不能用cabal运行,我希望能够快速验证我的所有测试和代码并在Jenkins中使用它.有人有想法吗?

我试图提供我认为必要的所有信息,而不会过于复杂的东西,所以我没有发布完整的cabal文件等等,如果有必要,我当然会这样做.我发现了很多类似的帖子,但是大多数都归结为使用了除了详细的0.9之外的其他东西,这可能是一个遗憾,因为它似乎与HUnit作为一个设置很好地工作,我想同时使用HUnit和QuickCheck当然,以同样的方式,最好暴露一个包含HUnit和QuickCheck测试的测试数组.

卡斯帕

fat*_*oku 3

我同意isturdy的观点:我肯定会尝试test-framework+ test-framework-quickcheck2。查看此示例,了解如何在项目中一起使用它们。请注意名为 的属性prop_*。

您还可以查看该项目haskell-minecraft-tool以查看测试输出是什么样的。运行测试

cabal configure --enable-tests && cabal build && cabal test
Run Code Online (Sandbox Code Playgroud)

查看.cabal此处的文件以了解需要哪些包。即这些 是test-framework,,test-framework-quickcheck2。QuickCheck