我有以下文件。如果你查看app.ex,doctest说2 + 2是3。 我故意试图让它失败。
app.ex
defmodule App do
@doc """
Adds two numbers
## Examples
iex> App.add(2, 2)
3
"""
def add(a,b) do
a + b
end
end
app_test.exs
defmodule AppTest do
use ExUnit.Case
doctest App
end
在控制台中输入:mix test
,结果为:
Finished in 0.01 seconds
0 failures
Randomized with seed 547000
答案 0 :(得分:3)
问题似乎在于@doc
的格式化。我认为,Doctest正确解析和执行的示例必须缩进 4 空格。
我在这里使用更新格式粘贴您的代码以供参考:
defmodule App do
@doc """
Adds two numbers
## Examples
iex> App.add(2, 2)
3
"""
def add(a,b) do
a + b
end
end
答案 1 :(得分:2)
混合似乎根本找不到任何测试用例,否则你会得到消息12 tests, 0 failures
而不仅仅是0 failures
这可能是因为您的测试文件的非标准命名。在Elixir中,测试文件必须以*_test.exs
结尾,您使用*.text.exs
(可能是拼写错误)。
如果您将测试重命名为test/app_test.exs
,它应该可以正常工作。