Replace the broken test suite with working GdUnit4 tests
The previous tests never compiled: they used GUT's assert functions, Godot 3 APIs and reassigned autoload functions, so no test ran. - 90 tests: unit tests for the playlist, songs, player scoring, time formatting, search and the server client, plus integration tests that run MainWindow and SyncWindow against a fake server - Keybind tests check that Alt+<number> and Ctrl+Alt+<number> keep following the player rows while players are added and removed - run_tests.sh finds Godot and runs the suite headless (~10 seconds) - CI runs the tests before the build job in gitea-build.yaml; the separate test.yml used a GitHub action that does not exist - GdUnit4 is committed instead of ignored, since the project enables it, and .gitea/ is no longer ignored - Exported builds leave out tests/ and addons/gdUnit4/
This commit is contained in:
1 parent
87ff3d899b
commit
91adf52cf4
559 files changed
+32474
-2100
No files matched your search
@@ -4,8 +4,10 @@
|
||||
#
|
||||
|
||||
name: "Build"
|
||||
on:
|
||||
push:
|
||||
on:
|
||||
push:
|
||||
branches: [main, develop]
|
||||
pull_request:
|
||||
branches: [main, develop]
|
||||
|
||||
env:
|
||||
@@ -14,7 +16,24 @@ env:
|
||||
EXPORT_NAME: MusicPlayer
|
||||
|
||||
jobs:
|
||||
# Runs before build in the same workflow, so the two never race for the runner
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Download Godot
|
||||
run: |
|
||||
curl -L -o godot.zip https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_linux.x86_64.zip
|
||||
unzip godot.zip
|
||||
mv Godot_v$GODOT_VERSION-stable_linux.x86_64 godot
|
||||
chmod +x godot
|
||||
- name: Run tests
|
||||
run: GODOT=./godot ./run_tests.sh
|
||||
|
||||
build:
|
||||
needs: test
|
||||
if: github.event_name == 'push'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
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