我正在使用 clojure.test,在某些测试中,首先验证某些条件是否成立是有意义的。
有没有办法在 "is"
失败时立即中断 deftest
?
重现我的问题的最小案例:
REPL> ((deftest example (is false) (is false)))
FAIL in (example) (form-init7701070357449256898.clj:1)
expected: false
actual: false
FAIL in (example) (form-init7701070357449256898.clj:1)
expected: false
actual: false
我只想报告一个“FAIL”
,而不是两个。
请注意,我有一些测试会生成(伪)随机数据,然后我想从一个循环中多次调用 "is"
。如果我这样做,比方说,10 000 次,那么我的终端就会发疯,打印出所有的失败信息,或者 Emacs 会卡住。
最佳答案
您可以在命名空间中定义一个名为 test-ns-hook
的函数,让您完全控制调用什么测试以及何时调用。您可以提供一个按顺序执行测试并在其中一个测试失败时停止的函数。
该函数需要在每个命名空间中声明,而不是包含在 use
或 require
关于testing - 如何在一次测试失败后立即中断测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092077/