Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/croconut/godot-tester
A Github Action to handle testing Godot applications with GUT
https://github.com/croconut/godot-tester
godot
Last synced: about 2 months ago
JSON representation
A Github Action to handle testing Godot applications with GUT
- Host: GitHub
- URL: https://github.com/croconut/godot-tester
- Owner: croconut
- License: mit
- Created: 2020-07-18T23:31:57.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-19T09:56:15.000Z (about 1 year ago)
- Last Synced: 2024-10-31T10:49:19.131Z (about 2 months ago)
- Topics: godot
- Language: GDScript
- Homepage:
- Size: 1.78 MB
- Stars: 36
- Watchers: 3
- Forks: 14
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# godot-tester
![Build tester](https://github.com/croconut/godot-tester/workflows/Build%20tester/badge.svg)A Github Action to handle automated testing of Godot applications.
Assumes that you have installed and are using GUT as your testing framework.
## GUT CLI alternatives
You can also run your own testing framework if you have a scene that can run tests on load and then exit.
You would use the 'direct-scene' option for that and you'll want the output for that scene to be an XML file following GUT's export results format: [GUT Export Document](https://bitwes.github.io/GutWiki/Godot4/Export-Test-Results.html)
Refer to the folder "/tester_GUT_v9.0.1/test/alt_mode" to see how to setup an override test scene for GUT, for use when GUT's CLI isn't working for your project.
## setup
Checkout your repository with actions/checkout then use this action.
The version of Godot you want to test against is required (e.g. "3.2.2")Example workflow:
~~~ yaml
name: Godot testing
on: [ push ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: croconut/godot-tester@v5
with:
# required
version: "4.0.3"
# the type of release of godot that the tests should be run with
release_type: "rc2"
is-mono: "true"
# the folder with your project.godot file in it
path: "tester"
# how long to spend importing assets before tests are run
import-time: "5"
# how long tests can run in seconds
test-timeout: "45"
# the ratio of tests that must pass for this action to pass
# e.g. 0.6 means 60% of your tests must pass
minimum-pass: "0.6"
# the directory containing Gut tests
test-dir: "res://test"
# instead of running GUT's command line tool,
# you can run a test scene if you have one
# set up a scene like in this repo --> located at /tester_GUT_v9.0.1/test/alt_mode/tests.tscn
# set up a script like in this repo --> located at /tester_GUT_v9.0.1/test/alt_mode/cli_test.gd
# ensure that the script exits on test completion
# uses relative path from your godot project directory
direct-scene: "tester_GUT_v9.0.1/test/alt_mode/tests.tscn"
# default is false, set true to count asserts instead of tests
assert-check: "true"
# not checked by default, set to a number to limit the
# maximum amount of failed tests for a passing test suite
max-fails: 3
# default is GUTs default: 'res://.gutconfig.json'; set this to load a different config file
config-file: "res://.myconfig.json"
# designate a custom url to download the godot binary from
custom-godot-dl-url: ""
# relative path to the xml file to read / write GUT's results from, recommended
# for direct-scene users to check this file if you have issues
result-output-file: "test_results.xml"~~~~
The import process has been recently improved but you may still see issues until Godot has a native solution for CLI.
The direct-scene and config-file options are mutually exclusive - if you use direct-scene you will need to edit that scene to reflect the GUT options you want to set.