web-dev-qa-db-ja.com

Mixでテストスイートから特定のテストのみを実行するにはどうすればよいですか?

Mixでテストスイートから特定のテストのみを実行するにはどうすればよいですか?

実行中mix testすべてのテストが実行されます

41
robkuz

Elixirで特定のテストのみを実行する5つの方法があります

  1. mix test path_to_your_tests/your_test_file.exsで単一のファイルを実行する
    これにより、your_test_file.exsで定義されたすべてのテストが実行されます

  2. コロンとそのテストの行番号を追加して、特定のテストファイルから特定のテストを実行する
    mix test path_to_your_tests/your_test_file.exs:12は、your_test_file.exsの12行目でテストを実行します

  3. テストメソッドで除外するタグを定義する

    defmodule MyTests do
        @tag disabled: true
        test "some test" do
            #testtesttest
        end
    end
    

    コマンドラインで次のようにテストを実行します
    mix test --exclude disabled

  4. テストメソッドに含めるタグを定義する

    defmodule MyTests do
        @tag mustexec: true
        test "some test" do
            #testtesttest
        end
    end
    

    コマンドラインで次のようにテストを実行します
    mix test --only mustexec

  5. 通常、これをtest/test_helper.exsfileに追加して、いくつかのタグ付きテストを除外します
    ExUnit.configure exclude: [disabled: true]

警告:Mixには--includeディレクティブがあります。このディレクティブは[〜#〜] [〜#〜]--onlyディレクティブは同じではありません。インクルードは、4)で説明されているtest/test_helper.exsfileから一般的な構成(除外)を解除するために使用されます。

何らかの理由でelixir mix include testsなどの検索結果が検索結果に表示されないため、このエントリとその回答を書きました。詳細については、 The Mixのドキュメント を参照してください。

73
robkuz