Elixir 我的doctest没有正确返回。我做错了什么

Elixir 我的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

我有以下文件。如果你看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
  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
也是一个打字错误?:)是的,是的。