- 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.
63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
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
|