Обзор проблемы:
Я пытаюсь реализовать прослушиватель в Robot Framework, который открывает новое окно xterm с pdb для интерактивной отладки во время выполнения тестовый пример. Цель состоит в том, чтобы предоставить пользователю возможность отлаживать тестовый пример, вызывая паузу, позволяя им проверять переменные и состояние теста.
Вот пример тестового примера, который я запускаю. :
*** Settings ***
Library BuiltIn
*** Variables ***
${PAUSE_FLAG} True
*** Test Cases ***
Test Without Debug
Log This test runs normally.
Test With Debug
Log This test will trigger a pause.
Test With Pause Flag
[Documentation] This test pauses after execution due to ${PAUSE_FLAG}.
Log Check if ${PAUSE_FLAG} is True.
Текущий код прослушивателя:
import pdb
import subprocess
from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn
flag = True
class TestListener:
ROBOT_LISTENER_API_VERSION = 3
def start_test(self, name, attrs):
"""
Trigger a pause when the test starts if the test name contains 'Debug'.
Opens an xterm window running pdb to start debugging.
"""
if flag:
subprocess.Popen([
"xterm",
"-e",
f"python -c 'import pdb; pdb.set_trace()'"
])
def end_test(self, name, attrs):
"""
Trigger a pause at the end of the test if the ${PAUSE_FLAG} variable is True.
"""
pause_flag = BuiltIn().get_variable_value("${PAUSE_FLAG}", False)
if pause_flag:
logger.console(f"Pausing execution at the end of test: {name}")
pdb.set_trace()
Возникла проблема:
Проблема, с которой я столкнулся, заключается в том, что после открытия окна xterm с помощью отладчика pdb , он не поддерживает правильное состояние тестового примера. В частности, я не могу получить имена переменных, а отладчик не связан с текущим выполняемым тестовым примером. Это затрудняет проверку переменных или состояния теста во время отладки.
В открывшемся новом окне xterm я попытался запустить следующие команды:
from robot.libraries.BuiltIn import BuiltIn
print(BuiltIn().get_variables())
Ожидание
Я ожидал получить все переменные, определенные в файле робота.
Реальность
Я получил следующее сообщение об ошибке:
*** robot.libraries.BuiltIn.RobotNotRunningError: Cannot access execution context
Подробнее здесь: https://stackoverflow.com/questions/793 ... w-during-r
Как сохранить контекст/состояние pdb при открытии в новом окне xterm во время выполнения робота ⇐ Python
Программы на Python
1736147715
Anonymous
Обзор проблемы:
Я пытаюсь реализовать прослушиватель в Robot Framework, который открывает новое окно xterm с pdb для интерактивной отладки во время выполнения тестовый пример. Цель состоит в том, чтобы предоставить пользователю возможность отлаживать тестовый пример, вызывая паузу, позволяя им проверять переменные и состояние теста.
Вот пример тестового примера, который я запускаю. :
*** Settings ***
Library BuiltIn
*** Variables ***
${PAUSE_FLAG} True
*** Test Cases ***
Test Without Debug
Log This test runs normally.
Test With Debug
Log This test will trigger a pause.
Test With Pause Flag
[Documentation] This test pauses after execution due to ${PAUSE_FLAG}.
Log Check if ${PAUSE_FLAG} is True.
Текущий код прослушивателя:
import pdb
import subprocess
from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn
flag = True
class TestListener:
ROBOT_LISTENER_API_VERSION = 3
def start_test(self, name, attrs):
"""
Trigger a pause when the test starts if the test name contains 'Debug'.
Opens an xterm window running pdb to start debugging.
"""
if flag:
subprocess.Popen([
"xterm",
"-e",
f"python -c 'import pdb; pdb.set_trace()'"
])
def end_test(self, name, attrs):
"""
Trigger a pause at the end of the test if the ${PAUSE_FLAG} variable is True.
"""
pause_flag = BuiltIn().get_variable_value("${PAUSE_FLAG}", False)
if pause_flag:
logger.console(f"Pausing execution at the end of test: {name}")
pdb.set_trace()
Возникла проблема:
Проблема, с которой я столкнулся, заключается в том, что после открытия окна xterm с помощью отладчика pdb , он не поддерживает правильное состояние тестового примера. В частности, я не могу получить имена переменных, а отладчик не связан с текущим выполняемым тестовым примером. Это затрудняет проверку переменных или состояния теста во время отладки.
В открывшемся новом окне xterm я попытался запустить следующие команды:
from robot.libraries.BuiltIn import BuiltIn
print(BuiltIn().get_variables())
Ожидание
Я ожидал получить все переменные, определенные в файле робота.
Реальность
Я получил следующее сообщение об ошибке:
*** robot.libraries.BuiltIn.RobotNotRunningError: Cannot access execution context
Подробнее здесь: [url]https://stackoverflow.com/questions/79332351/how-to-maintain-context-state-of-pdb-when-opening-in-a-new-xterm-window-during-r[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия