2016-12-19 6 views
0

私は以下のファイルを持っています。 app.exを見るとdoctestは2 + 2が3だと言っています。 私は意図的に失敗させようとしています。私のdoctestが正しく返されません。何が間違っているのですか

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 I型コンソールで

defmodule AppTest do 
    use ExUnit.Case 

    doctest App 
end 

mix testと結果は次のとおりです。

Finished in 0.01 seconds 
0 failures 

Randomized with seed 547000 
+2

** 2 **ではなく、** 4 **のスペースで借りてください。試してみてください。 –

+0

それは....それだった! – William

+2

FYI Elixir 1.3.4では、上記のコードをコピーして貼り付けるだけで済みます。この制限は最近削除されたようです。 –

答えて

2

それはと思われますミックスはフィンではないテストケースをまったく指定しないと、0 failuresの代わりに12 tests, 0 failuresというメッセージが表示されます。

これはおそらく、テストファイルの非標準的な名前付けのために起こります。エリクサーでは、テストファイルは*_test.exsで終わらなければならず、*.text.exs(おそらくタイプミス)を使用しました。

テストの名前をtest/app_test.exsに変更するとうまくいくはずです。

+0

テストファイルにはアンダースコアが付けられます。私はstackoverflowクエリでミスタイプをしました – William

+0

そして、 'text'もtypoですか? –

+0

:)はい、そうでした。 – William

3

問題は、@docのフォーマットにあるようです。私はDoctestで適切に解析して実行する例をのスペースでインデントしなければならないと思います。

私は参照用の更新フォーマットとここにあなたのコードを貼り付けています:doctestではによって実行される例については、 `IEX>`ブロックにあり、これは少し愚かに見えるかもしれませんが、私は思う

defmodule App do 
    @doc """ 
    Adds two numbers 

    ## Examples 

     iex> App.add(2, 2) 
     3 

    """ 
    def add(a,b) do 
    a + b 
    end 
end 
関連する問題