У меня есть метод, который я использую, чтобы получить все наши тесты.
def get_test_names_from_file():
get_test_names = pytest.main(['--collect-only', '-q'])
print(type(get_test_names))
return 'here is the methods return: ' + str(get_test_names)
Когда я вызываю этот метод, он возвращает существующий код here is the methods return: 0
, и это нормально.Чего я не могу понять, так это как получить полученный стандарт в формате, который я могу использовать.
Вот стандарт, когда вызывается метод:
test_a.py::TestA::test_general_a
test_a.py::TestA::test_python_a
test_a.py::TestA::test_python_learning_a
test_b.py::TestB::test_b
Как мне захватить этот вывод, чтобы я мог его вернуть?Я сделал все возможное, чтобы прочитать документы, и не могу найти способ сделать это.
Спасибо за потраченное время.
РЕДАКТИРОВАТЬ: Мне удалось получить что-то работающее с использованием подпроцесса, но я бы предпочел использовать pytest, а не смешивать и сопоставлять:
def get_test_names_from_file():
pytest_command_string = 'pytest --collect-only -q'
pytest_command = subprocess.Popen(pytest_command_string.split(), shell=False, stdout=subprocess.PIPE)
pytest_command_out = pytest_command.communicate()[0]
print(type(pytest_command_out))
return pytest_command_out