Я пытаюсь запустить тест 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.
Есть идеи?