我喜欢在我的测试中使用断点来查看出现了什么问题,但测试中的30秒超时阻止我自由环顾四周。
有没有办法禁用它?以下不起作用:
@tag timeout: 0
test "something" do
assert something == 42
end
答案 0 :(得分:14)
使用Elixir 1.1,您还可以使用
--trace
选项运行测试:mix test --trace
。它会自动将超时设置为无穷大。- JoséValim
也许尝试使用:
ExUnit.configure(timeout: 600_000)
# or even:
ExUnit.configure(timeout: :infinity)
答案 1 :(得分:3)
创建一个新答案,因为Stackoverflow上的两个独立编辑器认为我用代码中嵌入的实际文档来编辑接受的答案“旨在解决帖子的作者,并且没有任何编辑意义”,尽管更新了答案由Elixir git存储库(lol)中的文档作者完全撰写,尽管给出了4(!)额外的方法来设置答案或评论中未概述的超时时间,但它“没有更准确”。
五种方式:
@tag timeout: x
”(接受:infinity)进行每次测试@moduletag timeout: x
”来接受每个测试模块(接受:infinity)ExUnit.start(timeout: x)
”配置进行全局mix test --timeout x
” mix test --trace
”将超时设置为无穷大(在使用IEx.pry / 0时有用)
https://github.com/elixir-lang/elixir/blob/v1.10/lib/ex_unit/lib/ex_unit.ex#L144