QuickCheck的Batch
模塊用version 2(1.2.0.1 still has it)刪除。正因爲如此,我總是感覺像mapM_
-多次測試在一起是一種哈克。我忽略了QuickCheck 2中的後續功能嗎?是否有將獨立測試分組在一起的規範方法?QuickCheck 2批處理
回答
通過Test.QuickCheck.All
將當前模塊中的所有測試分組在一起的「選擇大或回家」選項。它需要模板Haskell,所有屬性必須以prop_
開頭。例:
{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck.All
prop_one, prop_two :: a -> Bool
prop_one = const True
prop_two = const True
runTests :: IO Bool
runTests = $quickCheckAll
main :: IO()
main = runTests >>= \passed -> if passed then putStrLn "All tests passed."
else putStrLn "Some tests failed."
兩個重要注意事項:首先,來自導入模塊的屬性似乎不包括在內。其次,(看起來很奇怪),在GHC 7.8中,你需要在'runTests = $ quickCheckAll'這行之前插入'return []'。有關更多信息,請參閱[模塊haddock頁面](http://hackage.haskell.org/package/QuickCheck-2.7.6/docs/Test-QuickCheck-All.html)。 – MasterMastic
如果你正在通過cabal測試套件測試,這個'main'可能更適合你:'main = runTests >> = \ passed - >如果通過,然後exitSuccess else exitFailure'。你還需要'導入System.Exit(exitSuccess,exitFailure)'。 – MasterMastic
- 1. 批處理命令「skip = 2 Delims =」
- 2. 批處理解析和Swift 2
- 3. 批處理docx
- 4. ksh批處理
- 5. 批處理
- 6. Mybatis批處理
- 7. Windows批處理
- 8. Java - 批處理
- 9. SSIS批處理
- 10. 批處理REST
- 11. Nodejs批處理
- 12. asp.net批處理
- 13. 批處理DataFieldMaxValueIncrementer
- 14. XSLT批處理
- 15. Java批處理
- 16. 批處理
- 17. Spring批處理項目集成了Spring批處理管理器
- 18. 2個工作和2個任務之間的JavaEE批處理
- 19. 批處理編程中%〜2和%2之間的區別?
- 20. spring批處理MapJobRepositoryFactoryBean
- 21. Spring批處理 - StepExecutionListener
- 22. 圖批處理API
- 23. 批處理腳本
- 24. oracle sql批處理
- 25. 使用批處理
- 26. 休眠批處理
- 27. 批處理文件「」
- 28. 批處理循環
- 29. Spring批處理JdbcBatchItemWriter
- 30. 使用批處理
看['測試framework'](http://hackage.haskell.org/package/test-framework)和['測試框架-quickcheck2'](HTTP:// hackage .haskell.org /包/測試框架-quickcheck2)。 – dflemstr