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!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!