Bom dia!
Na utilização do pytest, estou fazendo um teste para praticar e gostaria que primeiro fosse testado o login (test_login) e somente siga para a execução dos demais testes caso esse teste passe. Isso é possível no pytest?
Obrigado!
Bom dia!
Na utilização do pytest, estou fazendo um teste para praticar e gostaria que primeiro fosse testado o login (test_login) e somente siga para a execução dos demais testes caso esse teste passe. Isso é possível no pytest?
Obrigado!
Olá! Tudo certo?
No pytest, a execução dos testes é, por padrão, independente e não segue uma ordem específica. No entanto, você pode usar algumas abordagens para conseguir o que deseja.
Uma maneira de fazer isso é utilizando fixtures para criar uma dependência entre os testes. Você pode criar uma fixture que execute o teste de login e, se for bem-sucedido, permita a execução dos outros testes. Aqui está um exemplo simples de como você pode fazer isso:
import pytest
@pytest.fixture(scope="session")
def login():
# Simulando um teste de login
success = True # ou False, dependendo do resultado do login
assert success, "Login falhou"
return success
def test_login(login):
assert login, "Teste de login falhou"
def test_outro_teste(login):
assert login, "Não deve executar se o login falhar"
# Outros testes que dependem do login
Neste exemplo, o test_login
é executado primeiro por causa da fixture login
, e os outros testes que dependem do login são executados somente se o login for bem-sucedido.
Espero ter ajudado e bons estudos!