2016-06-12 4 views
0

印章をdoctesting私は素晴らしい印章を書いた:ここはエリクサー:

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 

doctestsをsigilで実行する方法はありますか? そうなら、どうですか?

答えて

4

sigil_aがdoctestsが実行されているコンテキストに存在しないためです。

@doc """ 
An awesome sigil! 

### Usage 

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

をかdoctest呼び出しにimport: trueを追加します:あなたは、明示的にSigiltestをインポートすることができますいずれか

doctest Sigiltest, import: true 
関連する問題