Cabal 说测试通过但实际上失败了?

Cabal says tests pass but in fact they fail?

当我 运行 使用 cabal test 测试套件时,我收到以下消息:

Running 1 test suites...
Test suite tests: RUNNING...
Test suite tests: PASS
Test suite logged to: my-lib-tests.log

但是当我查看日志文件时,内容是:

Test suite tests: RUNNING...
*** Failed! Falsified (after 1 test):
[]
Test suite tests: PASS
Test suite logged to: my-lib-tests.log

为什么我在测试明显失败时收到通过消息?

cabal test 假设失败的测试套件将以 non-zero 错误代码退出。

quickCheck 打印反例但 returns 正常。

要在找到反例时使测试可执行文件失败,您可以使用 quickCheckResult and isSuccess.

包装 QuickCheck 测试

有一些测试框架可以为你做这件事,上面有很多有用的功能(比如 command-line 参数到 select 测试到 运行),比如 tasty, tasty-quickcheck.