Тема: Тестування проєкту Pyside6 з pytest-qt
Ось код для головного вікна, працює без проблем:
# This Python file uses the following encoding: utf-8
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
# Important:
# You need to run the following command to generate the ui_form.py file
# pyside6-uic form.ui -o ui_form.py, or
# pyside2-uic form.ui -o ui_form.py
# from ui_form import Ui_MainWindow
from ui_MainWindow import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = MainWindow()
widget.show()
sys.exit(app.exec())Ось код для тесту:
"""File with tests for mainwindow"""
from Movar_qt.mainwindow import MainWindow
def test_window_visibility(qtbot) -> None:
"""Test for mainwindow visibility"""
window = MainWindow()
qtbot.addWidget(window) # Register the widget with qtbot
assert not window.isVisible() # Initially, it's not visible
window.show()
qtbot.waitExposed(
window, timeout=500
) # Wait for the window to actually become visible
assert window.isVisible()
window.close()
assert not window.isVisible()Щоразу, коли я набираю в консолі:
python -m pytestВидає ось таку помилку:
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.13/importlib/__init__.py:88: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_mainwindow.py:3: in <module>
from Movar_qt.mainwindow import MainWindow
Movar_qt/mainwindow.py:11: in <module>
from ui_MainWindow import Ui_MainWindow
E ModuleNotFoundError: No module named 'ui_MainWindow'
Не розумію, чому pytest не бачить цього файлу.
Ініти в кожній теці, програма зібрана в QtCreator з Pyside6.