testing - 如何在一次测试失败后立即中断测试?

标签 testing clojure shortcut

我正在使用 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 的函数,让您完全控制调用什么测试以及何时调用。您可以提供一个按顺序执行测试并在其中一个测试失败时停止的函数。
该函数需要在每个命名空间中声明,而不是包含在 userequire

关于testing - 如何在一次测试失败后立即中断测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092077/

相关文章:

php - 做这个逻辑有什么短手吗?

amazon-web-services - 在 AWS Beanstalk 上部署项目后获取通知

database - Clojure 如何在数据库中插入一个 blob?

ide - 寻找 except 或finally 的尝试

sorting - 是否有一种标准方法可以以 'conventional' 的方式比较 Clojure 向量

clojure - 我想在 clojure 的沙盒命名空间中运行加载文件

wix - 为不同片段中的 WiX 文件添加快捷方式

java - 没有getTitle()方法为什么获取不到title标签的文本

java - 如何测试使用或不使用 Mocks 调用静态工厂方法的代码?

php - Lithium PHP 集成测试 - 不包括 routes.php?