[PYTHON] Utilisez pytest-qt lors du pytesting PySdie et PyQt

introduction

[Cet article est en cours de rédaction et sera mis à jour! ]

Auparavant, dans "Démarrage du développement piloté par les tests avec PySide & Pytest", j'ai résumé la méthode de PySide + pytest, mais j'ai fait ce qui suit Était là.

Tout d'abord, dans conftest.py, enregistrez ce qui suit en tant que fixture,

conftest.py


@pytest.fixture
def base_window():
    app = QApplication()
    mainWindow = QMainWindow()
    mainWindow.show()
    return mainWindow

Dans le test, utilisez-le pour tester le widget

test_widget.py


def test_addWidget(base_widget):
    from MyCustomPySideLib,QCustomWidgets import QMyWidget
    tagWidget = QMyWidget()
    base_widget.setCentralWidget(tagWidget)

Je faisais cela, mais j'ai découvert que certaines personnes semblent proposer une autre méthode.

Introduction de pytest-qt

Vous pouvez simuler cela avec pytest-qt. pytest-qt est traité comme plugins pytest.

L'installation peut être effectuée avec pip.

pip install pytest-qt

Écrire avec pytest-qt

Lorsque je réécris le premier code de test en utilisant pytest-qt, cela ressemble à ceci.

Test supplémentaire du widget

test_widget.py


def test_addWidget(qtbot):
    from MyCustomPySideLib,QCustomWidgets import QMyWidget
    myWidget = QMyWidget()
    qtbot.addWidget(myWidget)

Recommended Posts

Utilisez pytest-qt lors du pytesting PySdie et PyQt
[Python] Utiliser et et ou lors de la création de variables
Utilisez SQL Alchemy et le multitraitement