Agent skill
test_gui
GUIアプリケーションの動作試験・デバッグを自動で行う
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/test-gui
SKILL.md
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=pyqt5export PYTEST_QT_API=pyqt5
- Handling Blocking Windows (plt.show):
-
When testing code that calls
plt.show()orapp.exec_(), useQTimerto close it automatically. -
Example:
pythonfrom 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()
-
Didn't find tool you were looking for?