Add GdUnit4 testing framework with comprehensive test coverage
- Add GdUnit4 v6.2.1 framework in addons/gdUnit4/ - Create test directory structure (tests/unit/, tests/integration/, tests/mocks/) - Add unit tests for MusicPlayer.gd (8 tests) - Add unit tests for MainWindow.gd (15+ tests) - Add unit tests for Settings.gd (5 tests) - Add unit tests for Playlist.gd (11 tests) - Add integration tests for full flow (10+ tests) - Add MockHTTPRequest for HTTP request mocking - Add TestHelpers with utility functions - Add Gitea Actions CI workflow (.gitea/workflows/test.yml) - Add .runsettings for GdUnit4 CLI configuration - Add run_tests.sh for convenient test execution - Add TESTING.md with comprehensive documentation - Add TESTING_PLAN.md with implementation details - Update .gitignore for test artifacts - Enable GdUnit4 plugin in project.godot Features: - Test button functionality (play, pause, search, sync, etc.) - Mock REST API requests to server - Test complete application flows - Run tests in CI (headless mode) - Run tests in GUI for visual feedback - JUnit XML and HTML test reports Generated by OpenCode AI assistant.
This commit is contained in:
1 parent
9a91d969bd
commit
ab338b0696
15 files changed
+2146
-1
No files matched your search
@@ -0,0 +1,62 @@
|
||||
name: Run Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main, master]
|
||||
pull_request:
|
||||
branches: [main, master]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Run GdUnit4 Tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
|
||||
- name: Setup Godot 4.7
|
||||
uses: https://github.com/godotengine/godot-action@v1
|
||||
with:
|
||||
godot-version: 4.7
|
||||
|
||||
- name: Install GdUnit4
|
||||
run: |
|
||||
# GdUnit4 is already included in the repo at addons/gdUnit4
|
||||
# Just verify it exists
|
||||
if [ ! -d "addons/gdUnit4" ]; then
|
||||
echo "GdUnit4 not found, downloading..."
|
||||
wget https://github.com/godot-gdunit-labs/gdUnit4/releases/download/v6.2.1/gdUnit4-v6.2.1.zip
|
||||
unzip -q gdUnit4-v6.2.1.zip
|
||||
mv gdUnit4-v6.2.1/addons/gdUnit4 addons/gdUnit4
|
||||
rm -rf gdUnit4-v6.2.1 gdUnit4-v6.2.1.zip
|
||||
fi
|
||||
|
||||
- name: Run Tests (Headless)
|
||||
run: |
|
||||
# Run tests in headless mode
|
||||
godot --path . -s addons/gdUnit4/test.gd --gdunit.cli
|
||||
env:
|
||||
GODOT_HEADLESS: 1
|
||||
|
||||
- name: Upload Test Results
|
||||
if: always()
|
||||
uses: https://github.com/actions/upload-artifact@v3
|
||||
with:
|
||||
name: test-results
|
||||
path: |
|
||||
test_results.xml
|
||||
test_results.html
|
||||
retention-days: 30
|
||||
|
||||
- name: Fail if Tests Failed
|
||||
run: |
|
||||
if [ ! -f "test_results.xml" ]; then
|
||||
echo "Test results not found!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if there were any failures in the JUnit XML
|
||||
if grep -q '<failure' test_results.xml; then
|
||||
echo "Tests failed!"
|
||||
exit 1
|
||||
fi
|
||||
Reference in new issue
Block a user