2016-11-07 2 views
1

Ich möchte dieses Skript unter Verwendung von pytest mit Argumenten ausführen, die von demselben Skript verwendet werden.Ausführen von Python-Skript mit Pytest mit Argumenten

Dies ist der Name des Skriptes test.py: g:

#!/usr/bin/env python 
import subprocess 
import os 
import sys 
import pytest 
a = sys.argv[3] # the argument that we need 
if len(a)== "0": 
    sys.exit(1) 
def test_function(): 
    assert a == "g" 

Ich möchte dieses Skript in diesem Fall das Argument ist mit pytest mit einem Argument laufen.

Ich habe den Befehl pytest -q test.py g versucht, aber es funktioniert nicht.

+0

a = sys.argv [2] # das Argument, die wir brauchen - -------------> Tippfehler –

+0

Wenn Sie 'g' übergeben, wird der' pytest' als Dateiparameter betrachtet. Warum möchten Sie Testparameter so übergeben? – Nurjan

Antwort

0

py.test scannt nach Tests und führt sie alle aus. Es ist eine schlechte Idee, die gleichen Argumente an jede Testdatei zu übergeben.

Sie können Ihren Test 'selbstlauf' machen:

if __name__ == "__main__": 
    pytest.main("-vv") 
    # or pytest.main("-vv --cov --cov-report term-missing -s") 

Dann chmod +x Ihre Datei und starten Sie es manuell: ./test_something.py

Verwandte Themen