Releases: godot-gdunit-labs/gdUnit4
v6.1.1
Hot Fix
What's Changed
Bug Fixes
- GD-1069: Fixing compile errors and warnings by @MikeSchulze in #1072
- GD-1070: Error monitor should respect the
push_errorreport settings by @MikeSchulze in #1074
Full Changelog: v6.1.0...v6.1.1
v6.1.0
What's Changed
Improvements
- GD-981: Add context menu to "Run until failure" by @MikeSchulze in #1044
- GD-1051: Add variadic argument support to assert_signal and support String and Signal reference for signal_name argument by @MikeSchulze in #1058
- GD-939 Improve orphan detection and reporting by @MikeSchulze in #1060
Bug Fixes
- GD-1020: Fix scene runner error
'Condition "!is_inside_tree()" is true. Returning: false'by @MikeSchulze in #1022 - GD-1045: Resolve class_name conflicts with named
Effectby @MikeSchulze in #1046 - GD-1055: Revisit the
simulate_key_..API and make the modifier arguments deprecated by @MikeSchulze in #1056 - GD-1031: Test session should be properly stopped when using the Stop button or shortcuts by @MikeSchulze in #1052
Refactorings
- GD-1014: Refactor building of context menus to use
EditorContextMenuPluginby @MikeSchulze in #1021 - GD-1016: Support variadic arguments on GdUnitTuple by @MikeSchulze in #1024
- GD-1028: Rebuild command execution system by @MikeSchulze in #1030
- GD-943: Replace manual error log parsing by new provided Godot Logger by @MikeSchulze in #1064
Documentation
- Update README links to new GitHub repository by @MikeSchulze in #1035
Other Changes
- 🤖 Update dependency Godot.NET.Sdk to 4.5.1 by @renovate[bot] in #1015
- 🤖 Update dependency sass-embedded to "~> 1.96.0" by @renovate[bot] in #1026
- 🤖 Update DavidAnson/markdownlint-cli2-action action to v22 by @renovate[bot] in #1023
- 🤖 Update GitHub Artifact Actions (major) by @renovate[bot] in #1029
- GD-1004: Upgrade GdUnit4 to compatible with Godot 4.6.x by @MikeSchulze in #1043
- Update ci/pr to Godot 4.6 by @MikeSchulze in #1068
Full Changelog: v6.0.3...v6.1.0
v6.0.3
v6.0.3
Reloading the C# project – hotfix
What's Changed
Bug Fixes
- GD-1010: C# When the project is recompiled, it causes a
duplicate key exception in ScriptTypeBiMapby @MikeSchulze in #1011
Full Changelog: v6.0.2...v6.0.3
v6.0.2
V6.0.2
PLEASE READ BEFORE UPDATE!
GdUnit4 v6.0.x is based on Godot 4.5.0 and is therefore no longer backward compatible!
Godot 4.5 introduced API changes that broke the framework and required a rebuild.
To use GdUnit4 on older versions of Godot, check the table of supported versions.
What's Changed
Improvements
- GD-999: respect .gdignore while scan for test directories by @rpaciorek in #996
- GD-982 Adding boolean fuzzer by @MikeSchulze in #1009
Bug Fixes
- GD-992: Default key binding Ctrl+F5 conflicts with Open Asset Library by @MikeSchulze in #1006
- GD-1002: Fixing
monitor_signalsstores collected signals across test boundaries. by @MikeSchulze in #1007 - GD-984: assert_str on text containing BBCode breaks the failure report by @MikeSchulze in #1008
Other Changes
- GD-998: Fix typo in class name by @nguyenchiencong in #997
- DOC-1001: Fix "How to fail fast" link by @MikeSchulze in #1005
New Contributors
- @nguyenchiencong made their first contribution in #997
- @rpaciorek made their first contribution in #996
Full Changelog: v6.0.1...v6.0.2
v6.0.1
V6.0.0
PLEASE READ BEFORE UPDATE!
GdUnit4 v6.0.x is based on Godot 4.5.0 and is therefore no longer backward compatible!
Godot 4.5 introduced API changes that broke the framework and required a rebuild.
To use GdUnit4 on older versions of Godot, check the table of supported versions.
What's Changed
Improvements
- GD-969: Decoupling editor interface calls from test execution by @limbonaut in #973
- GD-949: Allow underscore prefix for test case arguments to avoid unused argument warnings by @MikeSchulze in #974
Bug Fixes
- GD-934: Fixes using keyword
classin variable name lead in parsing errors by @MikeSchulze in #936 - GD-941: StringFuzzer should generate the values inclusive max length by @MikeSchulze in #942
- GD-941: Fixes max boundary check in StringFuzzer by @MikeSchulze in #944
Other Changes
- DOC-945: Migrate documentation into main branch by @MikeSchulze in #948
- DOC-945: Add custom source to deploy pages by @MikeSchulze in #952
- DOC-945: Adding GdUnit version selector by @MikeSchulze in #959
- DOC-958: Update documentation to v6.0.0 (part1) by @MikeSchulze in #962
- DOC-958: Update documentation to v6.0.0 (part2) by @MikeSchulze in #963
- DOC-958: Update documentation to v6.0.0 (part3) by @MikeSchulze in #970
- DOC-958: GdUnit4 inspector doc button link to current version by @MikeSchulze in #977
New Contributors
- @limbonaut made their first contribution in #973
Full Changelog: v6.0.0...v6.0.1
v6.0.0
V6.0.0
PLEASE READ BEFORE UPDATE!
GdUnit4 v6.0.0 is based on Godot 4.5.0 and is therefore no longer backward compatible!
Godot 4.5 introduced API changes that broke the framework and required a rebuild.
To use GdUnit4 on older versions of Godot, check the table of supported versions.
Compatibility Overview
| GdUnit4 Version | Godot minimal required/compatible Version |
|---|---|
| v6.x+ | v4.5 |
| v5.x+ | v4.3, v4.4, v4.4.1 |
| v4.4.0+ | v4.2.0, v4.3, v4.4.dev2 |
| v4.3.2+ | v4.2.0, v4.3 |
| v4.3.0, v4.3.1 | v4.2.0 |
| v4.2.1-v4.2.5 | v4.1.0 |
| v4.2.0 and older | v4.0 |
What's New
- Session Hooks
You can now add custom test session hooks to get more control over a test session.

By default, there a two system hooks installed to generate the HTML and XML test reports. - Support of Unicode characters
You can now write tests in your preferred language.func test_日本語() -> void: assert_str("這就是訊息。").contains("訊息。")
- Variadic argument support
You no longer need to specify multiple parameters as an array.# before v6.0.0 assert_array([1, 2, 3, 4, 5]).contains([5, 2]) # now assert_array([1, 2, 3, 4, 5]).contains(5, 2)
What's Changed
Improvements
- GD-903: Add support for variadic argument to assert_array by @MikeSchulze in #920
- GD-904: Add variadic argument support to
assert_dictby @MikeSchulze in #922 - GD-914,GD-893: Fix move_window_to_foreground by @MikeSchulze in #927
- GD-909: Add support for unicode characters by @MikeSchulze in #931
- GD-831: Add support for custom test session hooks #831
Bug Fixes
- GD-882: Fixing SceneRunner SimulateKey to provide missing Unicode value by @MikeSchulze in #883
- GD-887: Fixes run C# tests under linux by runtest script do not find any tests by @MikeSchulze in #891
- GD-878: Fixes verify a signal is NOT emitted twice by using argument matchers by @MikeSchulze in #896
- GD-912: fix(delete_directory): Remove hidden files by @DragonAxe in #901
- GD-902: Fix
simulate_action_pressshows Godot error Input singleton… by @MikeSchulze in #923
Other Changes
- TASK-868: Remove obsolete gdUnit3-examples submodule by @MikeSchulze in #869
- TASK-870: Remove test session hook the feature flag by @MikeSchulze in #871
- TASK-874: Consolidate and modernize C# code style configuration by @MikeSchulze in #875
- 🤖 Update dependency dotnet-sdk to v9.0.304 by @renovate[bot] in #877
- 🤖 Update actions/setup-dotnet action to v5 by @renovate[bot] in #885
- 🤖 Update actions/github-script action to v8 by @renovate[bot] in #889
- 🤖 Update dependency dotnet-sdk to v9.0.305 by @renovate[bot] in #892
- 🤖 Update dependency Godot.NET.Sdk to 4.5.0 by @renovate[bot] in #894
- GD-777: Add support for variadic functions by @MikeSchulze in #898
- GD-905: Convert assertion base classes to abstract classes
is_nullby @MikeSchulze in #906 - [GD-905] Convert base assert function
is_not_nullto abstract (part2) by @MikeSchulze in #907 - Remove outdated imports by @MikeSchulze in #908
- GD-910: Mock/Spy on a script results into many unfreed resources by @MikeSchulze in #913
- GD-905: Convert base assert function is_equal to abstract (part3) by @MikeSchulze in #915
- GD-905: Convert base assert function is_not_equal to abstract (part4) by @MikeSchulze in #916
- GD-905: Convert base assert function override_failure_message to abstract (part5) by @MikeSchulze in #917
- GD-905: Convert base assert function append_failure_message to abstract (part6) by @MikeSchulze in #918
- GD-905: Convert base assert function to abstract (part7) by @MikeSchulze in #919
- TASK-924: Convert
GdUnitSceneRunnerto abstract class by @MikeSchulze in #925 - TASK-924: Convert GdUnitSceneRunner to abstract class by @MikeSchulze in #926
- TASK-929: Fix various typos by @DSteve595 in #928
- 🤖 Update dependency Microsoft.NET.Test.Sdk to v18 by @renovate[bot] in #930
New Contributors
- @DragonAxe made their first contribution in #901
- @DSteve595 made their first contribution in #928
Full Changelog: v5.1.0...v6.0.0
v5.1.1
If you are using C# gdunit.api it is recommended to update your project to latest version!
<PackageReference Include="gdUnit4.api" Version="5.1.0-rc1"/>
What's Changed
Bug Fixes
- GD-872: Fix Internal errors when running C# tests by @MikeSchulze in #873
- GD-882: Fixing SceneRunner SimulateKey to provide missing Unicode in #883
- GD-887: Fixing Run C# tests under linux by runtest script do not find any tests in #891
- GD-878: Fixing Verify a signal is NOT emitted twice by using argument matchers in #896
Other Changes
- TASK-868: Remove obsolete gdUnit3-examples submodule by @MikeSchulze in #869
v5.1.0
What's Changed
With GdUnit4 v5.1.0, I introduced test session hooks, but they are not yet publicly visible.
This new feature will be officially released and documented with v6.0.0.
Improvements
- GD-781: Redesign the look&feel of the inspector test statistics by @MikeSchulze in #858

- GD-727: Introduce GdUnitTestSessionHook API by @MikeSchulze in #789
- GD-727: Implement session hook service by @MikeSchulze in #805
- GD-699: Add support for argument matchers on assert_error by @MikeSchulze in #807
await assert_error(func() -> void: push_error("test error")).is_push_error(any()) await assert_error(func() -> void: push_error("test error")).is_push_error(any_string())
- GD-857: Run rebuild c# project on update to new GdUnit4 version by @MikeSchulze in #866
Bug Fixes
- GD-784: Parse Error on startup when set inferred_declaration to error by @MikeSchulze in #785
- GD-809: Run test shows ERROR: [InspectorTreeMainPanel.gd:765] Internal Error: Can't find tree item for by @MikeSchulze in #830
- Fix crash and invalid state on cmd tool when no tests found by @MikeSchulze in #832
- GD-847: The summary of the test report is incorrect if the handling of flaky tests is enabled. by @MikeSchulze in #854
- GD-858: Fix
assert_dictshows corrupted failure message onis_equalby @MikeSchulze in #861 - GD-862: Fixes
assert_strshows different failure report as in the inspector by @MikeSchulze in #863
Other Changes
- GD-802: Fixed spelling issue in test discovery by @shovel-games in #803
- GD-707: Replace deprecated function
convertby @MikeSchulze in #808 - GD-811: Expose report path via test session object by @MikeSchulze in #813
- Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #814
- TASK-816: Improve the issue templates by @MikeSchulze in #817
- TASK-819: Add XML, YAML formatting checks to CI/PR by @MikeSchulze in #820
- TASK-821: Add Markdown formatting checks to CI/PR workflows by @MikeSchulze in #822
- GD-834: Convert XML reporter into a test session hook by @MikeSchulze in #835
- TASK-836: Consolidate the test reporter code base (part1) by @MikeSchulze in #837
- TASK-836: Consolidate the test reporter code base (part2) by @MikeSchulze in #838
- DOC-839: Document the fail() function by @MikeSchulze in #841
- TASK-836: Consolidate the test reporter code base (part3) by @MikeSchulze in #843
- TASK-836: Consolidate the test reporter code base (part4) by @MikeSchulze in #844
- DOC-842: Improve the class documentaion for
append_error_messageandoverride_error_messageby @MikeSchulze in #845 - TASK-848: Upgrade the C# project to use
.NET9by @MikeSchulze in #849 - 🤖 Update GrantBirki/json-yaml-validate action to v2.7.1 by @renovate[bot] in #852
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #851
- 🤖 Update GrantBirki/json-yaml-validate action to v3 by @renovate[bot] in #855
- TASK-833: Add feature flag to hide the session hooks until 6.0.0 is released by @MikeSchulze in #865
New Contributors
- @shovel-games made their first contribution in #803
Full Changelog: v5.0.4...v5.1.0
v5.0.5
What's Changed
Bug Fixes
- GD-790: Fixing plugin loading problems under Godot v4.3.x by @MikeSchulze in #793
- GD-794: GdMarkDownReader:Table class_name results in conflicts with user scripts by @MikeSchulze in #795
Full Changelog: v5.0.4...v5.0.5
v5.0.4
Hot Fix, the C# test discovery was broken
What's Changed
Bug Fixes
- GD-774: Fix broken C# test discovery by @MikeSchulze in #775
Other Changes
- Fix failing
GdFunctionDescriptorTeston Godot4.5-dev5 by @MikeSchulze in #771 - 🤖 Update Godot Engine 4.5-dev1 → 4.5-dev5 (patch) by @renovate in #770
- 🤖 Update dependency ubuntu to v24 by @renovate in #773
- 🤖 Update dependency Microsoft.NET.Test.Sdk to 17.14.1 by @renovate in #772
Full Changelog: v5.0.3...v5.0.4