繁体   English   中英

长生不老药:doctesting一个印记

[英]Elixir: doctesting a sigil

我写了一个很棒的标签:

defmodule Sigiltest do

  @doc """
  An awesome sigil!

  ### Usage

      iex> ~a{I love elixir}
      "I love elixir, awesome!"
  """
  def sigil_a(content, _flags) do
    "#{content}, awesome!"
  end
end

这是测试模块:

defmodule SigiltestTest do
  use ExUnit.Case
  doctest Sigiltest
end

当我运行mix test我得到以下输出:

Compiled lib/sigiltest.ex
** (CompileError) (for doctest at) lib/sigiltest.ex:7: undefined function sigil_a/2
    (stdlib) lists.erl:1337: :lists.foreach/2
    (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6

有没有办法在sigil上运行doctest? 如果是这样,怎么办?

这是因为sigil_a不存在于文档测试正在运行的环境。 您可以显式导入Sigiltest

@doc """
An awesome sigil!

### Usage

    iex> import Sigiltest
    iex> ~a{I love elixir}
    "I love elixir, awesome!"
"""

或在doctest调用中添加import: true

doctest Sigiltest, import: true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM