2 votes

pytest-html Personnalisation du tableau de résultats avec la sortie des résultats de test

J'essaie de faire de l'automatisation d'API en utilisant pytest. Je veux inclure le code d'état dans l'une des colonnes du rapport html généré à l'aide de pytest-html. J'ai collecté le status_code dans une variable dans la fonction de test. Mais comment le passer au hook dans conftest.

Mon fichier de test unitaire contient le code suivant.

class Test1(unittest.TestCase):
    def test1_cust_list_page(self):
        cust_list_resp = requests.post(BASE_URL+customer_list_ep,json=cust_page_payload,headers=headers,params=cust_list_params)
        print(cust_list_resp.status_code)
        status_code = cust_list_resp.status_code
        assert cust_list_resp.status_code==200

Mon fichier conftest contient le code suivant :

from datetime import datetime
from py.xml import html
import pytest

@pytest.mark.optionalhook
def pytest_html_results_table_header(cells):
    cells.insert(2, html.th('Status_code'))
    cells.insert(1, html.th('Time', class_='sortable time', col='time'))
    cells.pop()

@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):
    cells.insert(2, html.td(report.status_code))
    cells.insert(1, html.td(datetime.utcnow(), class_='col-time'))
    cells.pop()

@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    report.status_code = str(item.function.)

Quel devrait être le code dans la dernière ligne, si je veux invoquer la valeur de status_code à partir du test unitaire test1_cust_list_page.

Je me réfère à la pile ci-dessous, mais la deuxième option n'est pas claire quant à la fonction à appeler. Comment ajouter une variable supplémentaire au rapport html de pytest ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X