我一直在試圖使用cabal-install作爲一種構建方式,更重要的是測試我的haskell項目,這與Maven在Java項目中使用的方式有點相似,主要是因爲它似乎也可以將它們集成到Jenkins或ci左右,並且從某種意義上說它非常可靠,因此您不需要開發環境等設置來檢查並確認代碼是否正在編譯和正確或不。Haskell Cabal QuickCheck集成
無論如何,我正在使用QuickCheck和HUnit。在堆棧交換的另一篇文章here中,我發現了一個很好的方法來集成HUnit和cabal,通過使用Distribution.TestSuite.HUnit中的函數測試在我的測試模塊中創建一個暴露的測試數組。作品。
我試圖做的設置相同風格的快速檢查,
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:[]
我想看看這個測試失敗。
cabal文件我與HUnit一起工作,HUnit測試運行,失敗或不失敗,因爲他們應該。如果我使用相同的設置來執行快速檢查測試,但是cabal告訴我它確實找到了一個測試套件,但是沒有測試。我嘗試了Distribution.TestSuite.QuickCheck2的site中提到的方法,但是他們似乎沒有提及如何公開測試,我似乎無法完成該測試。我現在有些茫然,我可以用quickcheck本身運行這些quickcheck測試,但不能用cabal運行,我希望能夠快速驗證我所有的測試和代碼,並在Jenkins等中使用它。任何人有個想法?
我試圖給所有的信息,我認爲是必要的,沒有過度複雜的東西,所以我沒有發佈完整的cabal文件等,如果這是必要的,我當然會這樣做。我發現了不少類似的帖子,但其中大多數歸結爲使用其他的東西比詳細0.9 - 這將是一個可惜的,因爲它似乎很好地與HUnit作爲一個設置,我想同時使用HUnit和QuickCheck以同樣的方式,最好暴露一個包含HUnit和QuickCheck測試的測試數組。
卡斯帕
這裏是一個可能的示例: https://github.com/patperry/hs-monte-carlo/blob/master/monte-carlo.cabal 並與主呼叫QC測試: HTTPS:// github上.com/patperry/hs-monte-carlo/blob/master/tests/Main.hs – gliptak 2013-03-29 13:58:41
關注gliptak的評論 - 我將使用測試框架進行調查;我覺得它更方便一些。 [另外](https://github.com/isturdy/q/blob/master/tests/Tests.hs)[示例](https://github.com/isturdy/q/blob/master/tests/Data /Queue/RealtimeTests.hs)。 – isturdy 2013-05-02 19:10:26