一次测试失败后如何中断deftest?

时间:2014-04-15 18:55:11

标签: testing clojure shortcut

我正在使用 clojure.test 并且在某些测试中首先验证某些条件是否成立是有意义的。

一旦deftest失败,是否有办法中断"is"

最小的案例再现我的问题:

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卡住。

1 个答案:

答案 0 :(得分:0)

您可以在命名空间中定义一个名为 test-ns-hook 的函数,使您可以完全控制调用哪些测试以及何时调用。您可以提供按顺序执行测试的功能,并在其中一个测试失败时停止 该函数需要在每个命名空间中声明,而不是包含在userequire