Проблема: тесты проходят в режиме выполнения, но не проходят в режиме отладки с помощью Qt (PySide6 — Python)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема: тесты проходят в режиме выполнения, но не проходят в режиме отладки с помощью Qt (PySide6 — Python)

Сообщение Anonymous »

Я столкнулся со странной проблемой при выполнении модульных тестов, связанных с пользовательским интерфейсом на основе Qt. Все мои тесты отлично работают в режиме «Выполнить», но как только я перехожу в режим «Отладка» и устанавливаю точку останова в любом месте моего кода, тесты начинают давать сбой.
Похоже, проблема связана с интерфейс Qt «зависает» при достижении точки останова и никогда не «размораживается», препятствуя выполнению тестов.
Вот фрагмент проблемного кода:

Код: Выделить всё

def click_next_from_creation_plg(ctrl: Controller, qt_bot: QtBot, expected_res: bool):
"""
Click on next button from plugin creation panel and check if it's active

:param ctrl: Application controller
:param qt_bot: (QtBot) qt test fixture instance
:param expected_res: expected result on click, true if the button work, false else it doesn't work
:return: None
"""
current_page = ctrl.gui.stackedWidget.currentIndex()
if ctrl.main_window is not None and ctrl.main_window.isVisible():
if expected_res:
QTest.mouseClick(ctrl.create_panel.gui.button_next, Qt.MouseButton.LeftButton)
qt_bot.waitUntil(lambda: ctrl.gui.stackedWidget.currentIndex() != current_page, timeout=WAITING_QTBOT)
assert current_page != ctrl.gui.stackedWidget.currentIndex(), ("The current page should change when "
"the next button is clicked.")
else:
with qt_bot.assertNotEmitted(ctrl.create_panel.nextClicked):
QTest.mouseClick(ctrl.create_panel.gui.button_next, Qt.MouseButton.LeftButton)
assert current_page == ctrl.gui.stackedWidget.currentIndex(), ("The current page should not change "
"when the next button is clicked but "
"is not functional.")

assert ctrl.gui.button_next.isEnabled() is expected_res, ("The next button's enabled state does not match the "
"expected result.")
А это сообщение об ошибке:

Код: Выделить всё

def click_next_from_creation_plg(ctrl: Controller, qt_bot: QtBot, expected_res: bool):
"""
Click on next button from plugin creation panel and check if it's active

:param ctrl: Application controller
:param qt_bot: (QtBot) qt test fixture instance
:param expected_res: expected result on click, true if the button work, false else it doesn't work
:return: None
"""
current_page = ctrl.gui.stackedWidget.currentIndex()
if ctrl.main_window is not None and ctrl.main_window.isVisible():
if expected_res:
QTest.mouseClick(ctrl.create_panel.gui.button_next, Qt.MouseButton.LeftButton)
>               qt_bot.waitUntil(lambda: ctrl.gui.stackedWidget.currentIndex() != current_page, timeout=WAITING_QTBOT)
E               pytestqt.exceptions.TimeoutError: waitUntil timed out in 5000 milliseconds

tools.py:164: TimeoutError
Заранее благодарим за помощь! 👌

Подробнее здесь: https://stackoverflow.com/questions/793 ... de6-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»