Sto creando i casi di test per i web-test usando i framework Jenkins, Python, Selenium2 (webdriver) e Py.test.Pytest: come saltare il resto dei test nella classe se uno ha fallito?
Finora sto organizzando il mio test nella seguente struttura:
ogni Classe è il caso di test e ogni test_
metodo è un passo test.
Questa configurazione funziona ECCELLENTE quando tutto funziona correttamente, tuttavia quando un passaggio si interrompe il resto dei "passaggi di prova" impazzisce. Sono in grado di contenere l'errore all'interno della classe (Test Case) con l'aiuto di teardown_class()
, tuttavia sto cercando in che modo migliorarlo.
Ciò di cui ho bisogno è in qualche modo saltare (o xfail) il resto dei metodi test_
all'interno di una classe se uno di essi non è riuscito, in modo che il resto dei casi di test non vengano eseguiti e contrassegnati come FAILED (poiché ciò sarebbe falso positivo)
Grazie!
UPDATE: Non sto guardando o la risposta "è una cattiva pratica", dal momento che chiamarla in quel modo è molto discutibile. (ogni classe di test è indipendente e dovrebbe essere sufficiente).
UPDATE 2: L'inserimento della condizione "se" in ogni metodo di test non è un'opzione - È MOLTO lavoro ripetuto. Quello che sto cercando è (forse) qualcuno sa come usare il hooks per i metodi di classe.
Non puoi semplicemente impostare il flag --maxfail su 1? Ciò renderebbe py.test fine se un test fallisce. – Nacht
@Nacht l'idea è di continuare a testare altri casi di test nonostante uno di essi abbia fallito, ma interrompere qualsiasi test-step nel caso di test fallito –