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

时间:2016-12-19 10:13:52

标签: elixir doctest

我有以下文件。如果你查看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

2 个答案:

答案 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,它应该可以正常工作。