Как получить результат файла ран робота с помощью Popen - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу иметь возможность получить результат (пройденный или не пройденный) теста робота, запущенного с использованием popen. Я хочу использовать popen для поддержки диалоговых окон и тестов, которые не являются диалоговыми окнами. Есть ли способ получить результат? Я использую код с этой страницы здесь (ссылка).

import sys
import subprocess

my_path = sys.executable
def run_process(command):
    print("Running command: " + command)
    p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

    while True:
        if sys.version_info >= (3, 0):
            nextline = str(p.stdout.readline(),"utf-8")
        else:
            nextline = p.stdout.readline()
        if nextline == '' and p.poll() is not None:
            break
        sys.stdout.write(nextline)
        sys.stdout.flush()

python_path = my_path + ' -m robot.run'
Location ='C:/Users/Desktop/pass_or_fail.robot'
command=python_path+' '+Location
run_process(command)
print(my_path)

1 Ответ

0 голосов
/ 13 ноября 2018

Если тесты пройдены или не пройдены, его можно сохранить как целое число. Например, 0 означает, что тест пройден, а все, что больше 0, означает, что тест не пройден. Вот почему я использовал:

output = p.communicate()[0] rc = p.returncode

import sys
import subprocess

my_path = sys.executable
def run_process(command):
    global output
    global rc
    print("Running command: " + command)
    p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

    while True:
        if sys.version_info >= (3, 0):
            nextline = str(p.stdout.readline(),"utf-8")
        else:
            nextline = p.stdout.readline()
        if nextline == '' and p.poll() is not None:
            break
        sys.stdout.write(nextline)
        sys.stdout.flush()
        output = p.communicate()[0]
        rc = p.returncode
python_path = my_path + ' -m robot.run'
Location ='C:/Users/Desktop/pass_or_fail.robot'
command=python_path+' '+Location
run_process(command)
print(my_path)
print(rc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...