Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ordenar execução de testes com pytest

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!

1 resposta
solução!

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.