Comment passer des arguments dans pytest par ligne de commande
J'ai un code et j'ai besoin de passer les arguments comme le nom du terminal.
Voici mon code et comment passer des arguments. Je suis un "Fichier non trouvé" genre d'erreur que je ne comprends pas.
J'ai essayé la commande dans le terminal: pytest <filename>.py -almonds
Je devrais recevoir le nom imprimé "amandes"
@pytest.mark.parametrize("name")
def print_name(name):
print ("Displaying name: %s" % name)
OriginalL'auteur ashish sarkar | 2016-11-30
Vous devez vous connecter pour publier un commentaire.
Dans votre pytest de test, ne pas utiliser de
@pytest.mark.parametrize
:Dans
conftest.py
:Ensuite, vous pouvez exécuter à partir de la ligne de commande avec l'argument de ligne de commande:
OriginalL'auteur clay
Selon la document officiel, la marque décorateur devrait ressembler à ci-dessous.
Exécuter
test_
stdout (print)
, donc directement de l'exécution de stdout ne sera pas en mesure de montrer un résultat sur l'écran. Aussi, il n'est pas nécessaire d'imprimer le résultat de votre fonction dans les cas de test.Si vous voulez vraiment obtenir à l'extérieur configurable arguments, vous devriez vous mettre en œuvre qu'à l'intérieur de votre script. (Par exemple, le chargement de contenu de fichier)
OriginalL'auteur Kir Chou
Je suis tombé ici à la recherche pour savoir comment passer un argument, mais je voulais éviter le paramétrage de l'essai. Les réponses ci-dessus n'parfaitement bien l'adresse exacte de la question du paramétrage d'un test à partir de la ligne de commande, mais j'aimerais proposer une autre manière de passer d'un argument de ligne de commande pour les essais particuliers. La méthode ci-dessous utilise un appareil et de passer le test si l'appareil est spécifié, mais l'argument n'est pas:
Exemples:
OriginalL'auteur ipetrik
Utiliser le
pytest_addoption
fonction de raccordement dansconftest.py
pour définir une nouvelle option.Ensuite, utilisez
pytestconfig
luminaire dans un appareil de votre propre pour saisir le nom.Vous pouvez également utiliser
pytestconfig
à partir d'un test pour éviter d'avoir à écrire votre propre appareil, mais je pense avoir l'option de disposer de son propre nom est un peu plus propre.OriginalL'auteur Okken