2016-06-12 6 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 

하면 테스트 모듈입니다 : 내가 mix test을 실행하면

defmodule SigiltestTest do 
    use ExUnit.Case 
    doctest Sigiltest 
end 

나는 다음과 같은 출력을 얻을 :

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