test-gui
GUIアプリケーションの動作試験・デバッグを自動で行う
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Test and Debug GUI
This skill helps in testing and debugging gwexpy.gui.
Instructions
-
Run Automated Tests:
- Run tests specifically marked for GUI (usually requiring
pytest-qt). - Command:
pytest -m guiorpytest tests/gui/. (Adjust based on actual markers/folders). - Check
scripts/run_gui_tests.shif it exists and run it.
- Run tests specifically marked for GUI (usually requiring
-
Debug Crashes:
- If the GUI crashes (e.g. segmentation fault), look for logs or run with
gdbif necessary/possible. - Check typical PyQt issues: Thread safety (updating UI from background thread), signal/slot mismatches, object lifecycle (Python garbage collecting C++ objects).
- If the GUI crashes (e.g. segmentation fault), look for logs or run with
-
Interactive Debugging:
- Since this is an agent, "interactive" means adding print debugging or logging to the code and running it to capture output.
- Focus on
gwexpy/gui/main_window.pyor relevant widget files.
Best Practices
-
Avoid Binding Conflicts: Use
qtpyfor imports in test files (e.g.from qtpy import QtWidgets). -
Environment Variables: If multiple top-level bindings are installed, enforce consistency:
-
export QT_API=pyqt5 -
export PYTEST_QT_API=pyqt5
-
-
Handling Blocking Windows (plt.show):
-
When testing code that calls
plt.show()orapp.exec_(), useQTimerto close it automatically. -
Example:
from qtpy.QtCore import QTimer # ... inside test ... # Close active window after 100ms QTimer.singleShot(100, plt.close) # Or for raw Qt widgets: # QTimer.singleShot(100, widget.close) # Then call the blocking function plt.show()
-
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-26
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!