如何让ExUnit在首个测试不通过时终止运行?
在ExUnit中实现类似RSpec --fail-fast的功能
嘿,这个问题问得很到位!Elixir的ExUnit确实提供了和RSpec --fail-fast完全等效的功能,只是参数名称稍有不同——它叫--max-failures。下面具体说说怎么用:
命令行临时启用:直接在运行测试时加上参数,设置允许的最大失败次数为1,这样首个测试失败后就会立即终止测试运行:
mix test --max-failures 1全局默认配置:如果想让每次测试都默认启用这个行为,可以在
config/test.exs里添加全局配置:config :ex_unit, max_failures: 1在测试启动脚本中配置:也可以在项目的
test/test_helper.exs文件里,通过启动ExUnit时传入参数来设置:ExUnit.start(max_failures: 1)
这个max_failures参数的核心作用就是限制测试运行过程中允许的失败次数,当失败次数达到设定值时,测试套件会立刻停止执行。把它设为1,就完全实现了你需要的“首个测试不通过就终止”的效果,不管是在TDD场景下快速验证单个测试,还是批量修复测试时避免被大量失败信息干扰,都非常实用。
内容的提问来源于stack exchange,提问作者aef
相关产品推荐
相关产品推荐

