2017-09-20 1 views
1

J'ai trois essais dans un moduleComment exécuter un test deux fois dans pytest

def test_A(fixture, test_param): 
def test_B(fixture, test_param): 
def test_c(fixture, test_param): 

J'ai l'obligation d'exécuter le test en ordre suivant:

def test_A() 
def test_C() 
def test_B() 
def test_C() 

test_C() doit exécuter deux fois, après et également après test_B(). J'ai marqué

@pytest.mark.run(after='test_A') 
@pytest.mark.run(after='test_B') 
def test_C() 

mais test_c() est qu'une seule fois après ou Test_B().

Répondre

1

factoriser test_C et l'exécuter deux fois sous différents noms:

def _test_C(): 
    …code for test C… 

def test_A(): 
    … 

def test_C() 
    _test_C() 

def test_B() 
    … 

def test_C2() 
    _test_C() 
-2

Il y a deux façons de faire de nouvelles affaires py-test. --lf, --last-failed - pour seulement réexécuter les échecs.

--ff, --failed-first - pour exécuter les échecs en premier, puis le reste des tests.

+0

Il ne s'agit pas du tout de réexécuter les tests d'échec. –