В настоящее время я имею дело с некоторыми тестами графического интерфейса на Python. Некоторые из этих тестов вызывают другой инструмент, написанный на c ++ и собираемый как исполняемый файл. У меня есть полный доступ к этому инструменту, и я могу изменить его. Тесты вызывают его из командной строки и в настоящее время оценивают код ошибки и создают переданный или не пройденный в зависимости от значения кодов ошибок.
Я думаю, что есть лучший способ сделать это или? Одна из проблем заключается в том, что код ошибки ограничен uint8 в Unix-системах, и я хотел бы иметь возможность поделиться не только кодом ошибки с моим скриптом Python.
Моей первой идеей было распечатать все в файле в формате json или xml и прочитать этот файл. Но это как-то звучит неправильно для меня. У кого-нибудь есть идея получше?
Когда я впервые прочитал вопрос, я сразу подумал, что результаты работы будут работать. Проверьте эту ссылку, чтобы получить лучшую идею:
Если это не сработает, я думаю, что запись вашего вывода в файл и чтение его с помощью вашего скрипта Python сделают работу.
Вы можете захватить вывод внешнего процесса через Python и обработать его, как считаете нужным.
Вот очень простой вариант:
import os
import subprocess
def main():
s = os_capture(["ls"])
if "ERROR" in s:
test.fail("Executing 'ls' failed.")
def os_capture(args, cwd=None):
if cwd is None:
cwd = os.getcwd()
stdout = subprocess.Popen(
args=args,
cwd=cwd,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT).communicate()[0]
return stdout