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 ?