Как я могу заставить Mix запускать только определенные тесты из моего набора тестов?

Как я могу заставить Mix запускать только определенные тесты из моего набора тестов?

При запуске mix test выполняются все тесты

Ответы

Ответ 1

Есть 5 способов запустить только определенные тесты с Elixir

  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 запустит тест в строке 12 your_test_file.exs

  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.exs
    ExUnit.configure exclude: [disabled: true]

Предупреждение: Mix имеет директиву --include. Эта директива НЕ совпадает с директивой --only. Включение используется для test/test_helper.exs общей конфигурации (исключения) из файла test/test_helper.exs описанного в разделе 4).

По некоторым причинам поиск в elixir mix include tests и т.п., которые никогда не отображаются в моих результатах поиска, поэтому я написал эту запись и ее ответ. Документацию можно найти здесь
http://elixir-lang.org/docs/stable/mix/