Elixir 我的doctest没有正确返回。我做错了什么
我有以下文件。如果你看app.ex,医生说2+2等于3。 我故意让它失败 app.exElixir 我的doctest没有正确返回。我做错了什么,elixir,doctest,Elixir,Doctest,我有以下文件。如果你看app.ex,医生说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
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
在控制台中,输入:混合测试
,结果为:
Finished in 0.01 seconds
0 failures
Randomized with seed 547000
mix似乎根本找不到任何测试用例,否则您将得到消息
12个测试,0个失败
,而不仅仅是0个失败
这可能是因为测试文件的非标准命名。在Elixir中,测试文件必须以*\u test.exs
结尾,您使用了*.text.exs
(可能是打字错误)
如果您将测试重命名为
test/app\u test.exs
,它应该可以正常工作。mix似乎根本找不到任何测试用例,否则您将收到消息12个测试,0个失败
,而不是0个失败
这可能是因为测试文件的非标准命名。在Elixir中,测试文件必须以*\u test.exs
结尾,您使用了*.text.exs
(可能是打字错误)
如果将测试重命名为
test/app\u test.exs
,它应该可以正常工作。问题似乎出在@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
问题似乎出在
@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
这可能看起来有点傻,但我认为,对于Doctest执行的示例,
iex>
块必须有4个空格,而不是2个。你能试试吗?仅供参考,在Elixir 1.3.4中,你只需复制粘贴上面的代码就可以了。似乎这个限制最近被取消了。我将添加这个作为答案!很高兴我能帮助@William!这可能看起来有点傻,但我认为,对于Doctest执行的示例,iex>
块必须有4个空格,而不是2个。你能试试吗?仅供参考,在Elixir 1.3.4中,你只需复制粘贴上面的代码就可以了。似乎这个限制最近被取消了。我将添加这个作为答案!很高兴我能帮助@William!测试文件以下划线命名。我在stackoverflow查询中输入错误,并且是text
还是打字错误?:)是的,是的。测试文件用下划线命名。我在stackoverflow查询中输入了一个错误,text
也是一个打字错误?:)是的,是的。