Files
MusicPlayer/.gitea/workflows/test.yml
T
Sansan ab338b0696 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.
2026-10-06 08:32:55 +02:00

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