在Elixir的ExUnit中,是否可以只运行一个测试?

70
在Python的nosetests中,可以通过调用测试类后跟测试名称来指定运行单个测试。在Elixir的ExUnit中,我们该如何做到这一点?
4个回答

100
您现在可以使用mix test path/to/test.exs:13进行测试,其中13是测试代码的行数。

1
现在你可以通过将测试的行号添加到上面的混合命令的末尾来实现。 - Dokie
7
对于 umbrella 项目,文件路径中不应包含 apps/app_name。即使从根目录到文件路径是 apps/app_name/test/app_name_test.exs,只需运行 mix test test/app_name_test.exs:13。参见 此链接 - Ahmad Ferdous
最近的Elixir版本也支持完整的umbrella。 :) - José Valim

68

为测试添加一个标签(例如wip),并使用mix --only标志运行。

@tag :wip
test "only run this test" do
  assert true
end

运行命令: mix test --only wip

这将只运行带有“wip”标签的测试,跳过所有其他测试。


好的解决方案!谢谢。 - David Magalhães

17

今天我在IRC上问了同样的问题,那些人(感谢Nhu和José)回答说现在我可以用mix来做到。

你可以使用以下命令来运行单个测试:

mix test path/to/file_test.exs:42

如果您使用 Vim,您可以创建一个映射 就像我在这里所做的一样(基于 vim-rspec)


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接