当测试中有“@tag”时,如何使 CI 失败?
How do I fail the CI when there is an `@tag` in a test?
我们的代码审查中经常有评论告诉人们从他们标记为具有更紧密的迭代循环的测试中删除他们的 @tag
。但是,我认为依赖人类来发表这些评论是一种浪费。
是否有用于 mix test
、credo
或某些其他工具的选项,可在测试中检测 @tag
?
你可以试试这个bash法术:
! grep -R --include="*.exs" "@tag" test
它基本上是在目录 test
中搜索模式 @tag
的所有实例(因为 -R
)。 !
否定退出代码,因此当 grep
什么也没找到时它会成功,如果找到某些东西则失败。当脚本中的任何命令失败时,大多数 CI 应该会失败,因此这可能符合您的要求。
我们的代码审查中经常有评论告诉人们从他们标记为具有更紧密的迭代循环的测试中删除他们的 @tag
。但是,我认为依赖人类来发表这些评论是一种浪费。
是否有用于 mix test
、credo
或某些其他工具的选项,可在测试中检测 @tag
?
你可以试试这个bash法术:
! grep -R --include="*.exs" "@tag" test
它基本上是在目录 test
中搜索模式 @tag
的所有实例(因为 -R
)。 !
否定退出代码,因此当 grep
什么也没找到时它会成功,如果找到某些东西则失败。当脚本中的任何命令失败时,大多数 CI 应该会失败,因此这可能符合您的要求。