Elixir "mix test" 将@doc 示例视为测试

Elixir "mix test" considers @doc examples as tests

最近写了一个函数如下:

  @doc """
  Creates a new deck, shuffles its cards and retrieves a hand of
  cards from it.
  The `hand_size` argument indicates the size of the hand.

  ## Examples
      iex> {hand, _deck_remainder} = Cards.create_hand 2
      iex> hand
      ["Ace of Clubs", "Four of Hearts"]
  """
  def create_hand(hand_size) do
    create_deck
    |> shuffle
    |> deal(hand_size)
  end

要考虑的要点:

然后我运行 mix test 任务出现以下错误:

ERROR

看起来混合测试正在将@doc 注释中的示例视为单元测试。

由于 shuffle/1 运行domly ar运行ges 列表中的字符串,示例(作为单元测试)崩溃。

我想从 mix test 中排除这些示例...这样做是个好主意吗?如果是这样,我该如何排除它们?

您可能复制了一些默认启用 doctests 的样板测试代码。喜欢:

defmodule MyModule.Test do
  use ExUnit.Case, async: true
  doctest MyModule
end

删除 doctest 位,你应该没问题。您当然也可以将评论格式化为看起来不像 doctest :-)