Тест Robot Framework внутри QThread не показывает значения переменных в файле журнала - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь запустить тест Robot Framework внутри QThread.Однако, когда я использую ключевое слово Log для записи значения переменной, значение не отображается в файле "log.html".

Я создал минимальный пример с тремя файлами:

run_this.py

import robot
from execute_robot_from_qthread import RobotExec

def start_robot_in_thread():
    robot_execution_thread = RobotExec()
    robot_execution_thread.start()
    robot_execution_thread.wait()

def start_robot_here():
    robot.run("test.robot")

#Uncomment the function to test

#If you run this the messages will not appear?
#start_robot_in_thread()

#But they do if you run this?!
start_robot_here()

execute_robot_from_qthread.py

import robot
from PyQt5.QtCore import QThread

class RobotExec(QThread):
    def run(self):
        robot.run("test.robot")

test.robot

*** Settings ***

*** Variables ***

*** Test Cases ***
Test do_test
    ${test} =     Set Variable     1
    Log    ${test}    WARN
    Log    ${test}

Используйте команду python3 run_this.py, чтобы запустить ее.Если мы запустим функцию start_robot_here(), в run_this.py, все будет работать как положено.Однако, если мы запустим функцию start_robot_in_thread(), в файле журнала будет показано значение, только когда оно присвоено переменной.Первое изображение ниже показывает желаемый вывод, а второе показывает вывод при запуске его в qthread.

Working one

NotWorking

Есть идеи?

1 Ответ

0 голосов
/ 17 октября 2018

Потоки, кажется, проблема, обходной путь, чтобы запустить его как процесс.

https://github.com/robotframework/robotframework/issues/2914

...