Я изучал / изучал это в течение нескольких дней, но не могу понять это. Все, что я хочу сделать, это получить статус каждой тестовой функции, чтобы я мог записать свои собственные файлы журнала.
Я почти уверен, что мне нужны части TestReport, хуки pytest_testreport_status и pytest_runtest_makereport. Я довольно новичок в pytest, и я просто не понимаю, как «склеить» все это вместе, чтобы это сработало.
Вот простой тест. Последний оператор в тесте - это вызов функции (process_test_function_results), который обрабатывает результаты теста и записывает результаты в файл журнала. Я считаю, что я хочу передать объект TestReport в process_test_function_results (). Просто не уверен, как заставить это работать с крючками и собрать все это вместе.
import pytest
import lib.dnet_generic as mynet_generic
import datetime
@pytest.mark.parametrize("cmd",[
"show system version | no-more",
"show bgp summary | no-more",
"show bgp neighbor | no-more",
])
def test_cmds(logger, device_connections, testinfo, error_queue, cmd, rp_logger):
dut = testinfo['topo_map']['devices']['dev3']['name']
connection = device_connections[dut]
cmdOutput = connection.send_command(cmd)
if "ERROR" in cmdOutput:
err_time = datetime.datetime.now()
err_mess = (f"ERROR: The command <{cmd}> returned an error.\n"
f"Time: {err_time}\n"
f"Device: {dut}\n"
)
mess_level = "error"
message = {'level' : mess_level , 'message' : err_mess}
error_queue.put(message)
connection._write_session_log(err_mess)
mynet_generic.process_test_function_results(error_queue, logger,testinfo,rp_logger)
Вот фрагмент того, как выглядит файл пользовательского вывода, записанный с помощью метода process_test_function_results. Вы заметите Результат: пусто. Я считаю, что я хочу заполнить Результат: TestReport.outcome
------------------------------------------------------------
---- Begin Function Test: test_isis_cmds[show
---- Start Time: Thu Oct 03 16:39:15 2019
------------------------------------------------------------
--------------------------------------
---- Test Function completed at: Thu Oct 03 16:39:16 2019
---- Result:
--------------------------------------
------------------------------------------------------------
---- Begin Function Test: test_isis_cmds[show
---- Start Time: Thu Oct 03 16:39:16 2019
------------------------------------------------------------
--------------------------------------
---- Test Function completed at: Thu Oct 03 16:39:16 2019
---- Result:
--------------------------------------
------------------------------------------------------------
---- Begin Function Test: test_isis_cmds[show
---- Start Time: Thu Oct 03 16:39:16 2019
------------------------------------------------------------
--------------------------------------
---- Test Function completed at: Thu Oct 03 16:39:17 2019
---- Result:
--------------------------------------
Спасибо за любую помощь. Al