Quindi ho cercato di ottenere pytest per eseguire test di selenio su diversi ambienti basati su alcuni argomenti della riga di comando. Ma si continua a gettare questo errore:Impossibile ottenere pytest per capire gli argomenti della riga di comando sui setup
TypeError: setup_class() takes exactly 2 arguments (1 given)
sembra che è la comprensione che setup_class
prende 2 argomenti, ma host
non viene superato. Ecco il codice per setup_class
:
def setup_class(cls, host):
cls.host = host
E qui è il file conftest.py:
def pytest_addoption(parser):
parser.addoption("--host", action="store", default='local',
help="specify the host to run tests with. local|stage")
@pytest.fixture(scope='class')
def host(request):
return request.config.option.host
Quello che è strano è che host
viene visto dalle funzioni (quindi se faccio un test_function e passaggio host come parametro, lo fa bene), sono solo gli apparecchi setup
che non funzionano.
mi sono guardato intorno e ho trovato questo, pytest - use funcargs inside setup_module ma che non sembra funzionare (e non è aggiornato dal 2.3.
Qualcuno sa che cosa sto facendo male? Utilizzando py.test 2.3.2 .
Grazie
[qui] (http://pytest.org/latest/fixture.html#working-with-a-module-shared-fixture) si dice "Il nome del dispositivo è di nuovo SMTP e si può accedere ai suoi risultati elencando il nome smtp come parametro di input in qualsiasi test o funzione di installazione ". Quindi posso usarlo su Setup e così via, no? E 'autouse' e' uses' fanno in modo che tutti i test eseguano quel codice, voglio solo il set up per farlo. – Nacht
Ti darò la risposta. Anche se non hai risposto alla mia risposta specifica, mi hai dato un'idea come soluzione. Questo è strano, i documenti dicono che puoi farlo, ma non sembra essere il caso. Comunque, grazie. – Nacht
hai ragione, i documenti sono fuorvianti. O in realtà, ho appena caricato una correzione che sostituisce "funzione di setup" con "funzione fixture". scusa! – hpk42