当我使用运行测试套件时cabal test,我收到以下消息:
Running 1 test suites...
Test suite tests: RUNNING...
Test suite tests: PASS
Test suite logged to: my-lib-tests.log
Run Code Online (Sandbox Code Playgroud)
但当我查看日志文件时,内容是:
Test suite tests: RUNNING...
*** Failed! Falsified (after 1 test):
[]
Test suite tests: PASS
Test suite logged to: my-lib-tests.log
Run Code Online (Sandbox Code Playgroud)
为什么当测试明显失败时我却收到通过消息?
cabal test假设失败的测试套件将以非零错误代码退出。
quickCheck打印反例但正常返回。
要在找到反例时使测试可执行文件失败,您可以使用quickCheckResult和isSuccess包装 QuickCheck 测试。
有一些测试框架可以为您执行此操作,顶部有许多有用的功能(例如用于选择要运行的测试的命令行参数),例如tasty、 和tasty-quickcheck。