首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在第一个未通过的测试中中止ExUnit

在第一个未通过的测试中中止ExUnit
EN

Stack Overflow用户
提问于 2018-05-23 12:35:15
回答 3查看 1K关注 0票数 6

在Ruby特别是RSpec中,您可以告诉测试运行程序在没有通过命令行标志--fail-fast的第一个测试中中止。在连续修复大量测试时,这有助于避免浪费时间或失去注意力,例如,在进行测试驱动或行为驱动的开发时。

现在,在使用ExUnit的灵丹妙药上,我正在寻找一种方法来做到这一点。有办法这样做吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-16 17:44:28

这样一种选择 1.8之后就出现了。

使用--max-failures开关限制通过失败评估的测试数量。若要在第一次失败后停止测试套件,请运行以下命令:

代码语言:javascript
复制
mix test --max-failures 1
票数 5
EN

Stack Overflow用户

发布于 2018-05-23 13:19:26

不幸的是,有(据我所知) 没有实现这样的标志

但是,您可以通过以下方法运行一个测试

代码语言:javascript
复制
mix test path/to/testfile.exs:12

其中12是测试的行号。

希望这能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2018-05-23 14:23:25

这没有多大意义,因为Elixir中的测试是( a)要以惊人的速度运行,b)在大多数情况下是异步运行的。在失败的测试中立即终止测试套件是一种反模式,这就是为什么ExUnit作者不允许使用它。

一个人仍然可以选择射击他们自己的腿:只需为EventManager实现一个自定义处理程序,并在“测试失败”事件中终止整体应用

对于BDD,最好使用tags,运行测试套件时只包含此特性。这样,您就可以在将来的任何时候运行每个特性的测试。

另外,作为最后一种手段,只有将文件名传递给mix test和/或仅通过传递文件名、后跟冒号和行号才能运行特定的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50488592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档