当测试中有“@tag”时,如何使 CI 失败?

How do I fail the CI when there is an `@tag` in a test?

我们的代码审查中经常有评论告诉人们从他们标记为具有更紧密的迭代循环的测试中删除他们的 @tag。但是,我认为依赖人类来发表这些评论是一种浪费。

是否有用于 mix testcredo 或某些其他工具的选项,可在测试中检测 @tag

你可以试试这个bash法术:

! grep -R --include="*.exs" "@tag" test

它基本上是在目录 test 中搜索模式 @tag 的所有实例(因为 -R)。 ! 否定退出代码,因此当 grep 什么也没找到时它会成功,如果找到某些东西则失败。当脚本中的任何命令失败时,大多数 CI 应该会失败,因此这可能符合您的要求。