All Projects → croconut → godot-tester

croconut / godot-tester

Licence: MIT license
A Github Action to handle testing Godot applications with GUT

Programming Languages

GDScript
375 projects
shell
77523 projects
Dockerfile
14818 projects

Labels

Projects that are alternatives of or similar to godot-tester

Freedom-Hunter
Monster Hunter like action RPG game
Stars: ✭ 71 (+373.33%)
Mutual labels:  godot
godot-editor-theme-explorer
Godot Editor plugin to browse various items of Editor Theme, such as icons, colors and fonts.
Stars: ✭ 61 (+306.67%)
Mutual labels:  godot
line-renderer
A GDScript implementation of a line renderer in Godot.
Stars: ✭ 25 (+66.67%)
Mutual labels:  godot
Logic-Circuit-Simulator
A free and open-source Logic Circuit Simulator built in Godot Engine.
Stars: ✭ 23 (+53.33%)
Mutual labels:  godot
godot-lod-demo
Demonstration project for the Level of Detail (LOD) Godot 3.x add-on
Stars: ✭ 34 (+126.67%)
Mutual labels:  godot
godot-FLMusicLib
GDNative library that plays mp3, chiptune and tracker music files using Game Music Emu, Minimp3 and openmpt
Stars: ✭ 38 (+153.33%)
Mutual labels:  godot
godot-custom-mobile-template
Godot Game Engine Custom Mobile Template
Stars: ✭ 70 (+366.67%)
Mutual labels:  godot
Fake-Interior-Shader-for-GodotEngine
Interior Mapping shader for the Godot Game Engine 3.x that works with both GLES3 and GLES2.
Stars: ✭ 40 (+166.67%)
Mutual labels:  godot
surfacer
AI and pathfinding for 2D-platformers in Godot.
Stars: ✭ 56 (+273.33%)
Mutual labels:  godot
BitKnight
BitKnight is a side-scroller adventure game in the style of Nokia 3310 games
Stars: ✭ 23 (+53.33%)
Mutual labels:  godot
terrain-tool-godot4
GODOT 4 3D Terrain Editor (C# Plugin)
Stars: ✭ 22 (+46.67%)
Mutual labels:  godot
godot-size-benchmarks
Benchmarks to compare Godot binary sizes with different build-time options
Stars: ✭ 36 (+140%)
Mutual labels:  godot
triple-triad-godot
Re-implementation of Triple Triad from Final Fantasy VIII. Made with Godot 3
Stars: ✭ 61 (+306.67%)
Mutual labels:  godot
godot-ci
Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.
Stars: ✭ 316 (+2006.67%)
Mutual labels:  godot
Godot-Share
Simple share text and/or image module for Godot Engine (Android & iOS)
Stars: ✭ 58 (+286.67%)
Mutual labels:  godot
godot-shotgun-party
An evolving multiplayer project for Godot Engine 3.
Stars: ✭ 171 (+1040%)
Mutual labels:  godot
OpMon-Godot
An open source Pokemon-inspired game, now with Godot
Stars: ✭ 50 (+233.33%)
Mutual labels:  godot
GodotDiscordSDK
A Discord Game SDK wrapper for Godot, written in C.
Stars: ✭ 40 (+166.67%)
Mutual labels:  godot
broken seals
An open source third person action RPG with multiplayer support.
Stars: ✭ 223 (+1386.67%)
Mutual labels:  godot
godot-uuid
Unique identifier generation v4 for Godot Engine
Stars: ✭ 96 (+540%)
Mutual labels:  godot

godot-tester

Build tester

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 similar to GUT's to help this action's pass / fail to work properly.

Refer to the folder "/tester/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:

name: Godot testing

on: [ push ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: croconut/[email protected]
      with:
        # required
        version: "3.2.2"
        # the type of release of godot that the tests should be run with
        release_type: "rc2"
        is-mono: "true"
        # the folder with your projects.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 GUT test scene if you have one
        # set up correctly
        # helps enable things like mouse mocking and current scene to work without any extra coding steps
        # set up a scene like in this repo --> located at /tester/test/alt_mode/tests.tscn
        # set up a script like in this repo --> located at /tester/test/alt_mode/cli_plugin.gd
        # ensure cli_plugin.gd inherits from the GUT plugin
        # and exits on test completion
        # ensure tests.tscn uses your modified plugin script and check yes for run on load
        # uses relative path from your godot project directory
        direct-scene: "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  
        # to ensure all SCRIPT ERRORs dont contribute to your failure rate        
        ignore-errors: "true" 
        # default is GUTs default: 'res://.gutconfig.json'; set this to load a different config file
        config-file: "res://.myconfig.json" 

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.

The direct scene files in /tester/test/alt_mode are a good starting point for your custom testing scene.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].