web-dev-qa-db-fra.com

Comment puis-je faire en sorte que Mix exécute uniquement des tests spécifiques à partir de ma suite de tests?

Comment puis-je faire en sorte que Mix exécute uniquement des tests spécifiques à partir de ma suite de tests?

Lors de l'exécution mix test tous les tests sont exécutés

41
robkuz

Il existe 5 façons d'exécuter uniquement des tests spécifiques avec Elixir

  1. exécuter un seul fichier avec mix test path_to_your_tests/your_test_file.exs
    Cela exécutera tous les tests définis dans your_test_file.exs

  2. exécuter un test spécifique à partir d'un fichier de test spécifique en ajoutant deux points et le numéro de ligne de ce test
    par exemple mix test path_to_your_tests/your_test_file.exs:12 exécutera le test à la ligne 12 de your_test_file.exs

  3. définir une balise à exclure de vos méthodes de test

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

    sur la ligne de commande, exécutez vos tests comme celui-ci
    mix test --exclude disabled

  4. définir une balise à inclure dans vos méthodes de test

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

    sur la ligne de commande, exécutez vos tests comme celui-ci
    mix test --only mustexec

  5. Excluez généralement certains tests balisés en les ajoutant à votre test/test_helper.exsfichier
    ExUnit.configure exclude: [disabled: true]

Attention: Mix a un --include directive. Cette directive est [~ # ~] pas [~ # ~] identique à --only directive. Inclure est utilisé pour rompre la configuration générale (exclusion) du test/test_helper.exsfichier décrit sous 4).

Pour une raison quelconque, googler pour elixir mix include testsou similaire n'apparaît jamais sur mes résultats de recherche, j'ai donc écrit cette entrée et sa réponse. Pour plus d'informations, voir la documentation Mix .

73
robkuz