ExUnit.Case 的文档说:async
选项默认为false
并且"只有在测试不更改任何全局状态时才应启用"。在一个项目中,我正在处理的测试用例中有<1%会更改全局状态,但是人们经常忘记向应该异步的用例添加async: true
。
有没有办法让项目默认:async
true
?
到目前为止,我想出的最佳解决方案是创建我自己的案例模板,将我自己的默认值传递给use ExUnit.Case
,但如果可以的话,我想避免这种情况。这似乎有点奇怪,我觉得那时人们会忘记使用自定义案例模板。如果有一种方法可以在我在文档中找不到的配置中设置它,我相信这就是我正在寻找的更多内容。
正如源代码中所示,async
属性仅直接从选项中获取。
也许拉取请求的作用有点像:
- async = !!unquote(opts)[:async]
+ async = Keyword.get(
+ unquote(opts),
+ :async,
+ Application.get_env(:ex_unit, :async_all, false)
+ )