Releases: MikeSchulze/gdUnit4
v4.5.0
Major Update
The way how to notify about gdUnit4 updates available will be changed by this release.
Instead of a pop-up notification dialog, you will now be informed about available updates in the gdUnit4 console.
To install the update, you have to open the gdUnit4 settings and navigate to the new update tab.
What's Changed
Improvements
- GD-609: Rework on GdUnit4 update notification by @MikeSchulze in #612
Bug Fixes
- GD-605: Fixes the CMD tool to collect multiple command arguments by @MikeSchulze in #606
- GD-607: Fix discovery of root test suites by @esainane in #604
Other Changes
- Added support for Godot4.4-dev6
- Replace references to GdUnit3 with GdUnit4 by @esainane in #601
- Fixed typo in "scanned" in code and in prints by @hhyyrylainen in #602
New Contributors
- @esainane made their first contribution in #601
- @hhyyrylainen made their first contribution in #602
Full Changelog: v4.4.3...v5.0.0
v4.4.3
Hotfix memory leaks on test execution
What's Changed
- GD-598: Fixing memory leaks on test execution by @MikeSchulze in #599
Full Changelog: v4.4.2...v4.4.3
v4.4.2
What's Changed
Bug Fixes
- GD-592: Fixes, the detection of parameterized test data changes in
TestDiscoveryGuard
to notify the test explorer and update the structure. by @MikeSchulze in #593 - GD-594: Fixes, mock fails on class with parameter getter setter by @MikeSchulze in #595
- GD-596: Fixes, run test via CMD line is broken when use skipp command option by @MikeSchulze in #597
Other Changes
Full Changelog: v4.4.1...v4.4.2
v4.4.1
What's Changed
Improvements
- GD-579: Minimize warnings of testsuite resource loading by @MikeSchulze in #587
- GD-579:
Part1:
Minimizeunsafe_call_argument
warnings by @MikeSchulze in #580 - GD-579:
Part2
: Minimizereturn_value_discarded
warnings by @MikeSchulze in #582 - GD-579:
Part3:
Minimizeunsafe_property_access
warnings by @MikeSchulze in #583 - GD-579:
Part4:
Minimizeunsafe_method_access
warnings by @MikeSchulze in #584 - GD-579:
Part5:
Minimizeunsafe_cast
warnings by @MikeSchulze in #586
Full Changelog: v4.4.0...v4.4.1
v4.4.0
GdUnit4 v4.4.0
What's Changed
- Introduction of flaky test detection, automatically executed again if flaky test detection is enabled.
- Added touchscreen support to the SceneRunner.
- HTML report look & feel redesign
Improvements
- GD-220: Add support for flaky test handling and retrying their execution by @MikeSchulze in #558
- GD-554: Adding support for touch screen input event testing to
GdUnitSceneRunner
by @MikeSchulze in #556
## Simulates a screen touch is pressed.[br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member position] : The position to touch the screen.[br]
## [member double_tap] : If true, the touch's state is a double tab.
@warning_ignore("unused_parameter")
func simulate_screen_touch_pressed(index :int, position :Vector2, double_tap := false) -> GdUnitSceneRunner:
## Simulates a screen touch is press.[br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member position] : The position to touch the screen.[br]
## [member double_tap] : If true, the touch's state is a double tab.
@warning_ignore("unused_parameter")
func simulate_screen_touch_press(index :int, position :Vector2, double_tap := false) -> GdUnitSceneRunner:
## Simulates a screen touch is released.[br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member double_tap] : If true, the touch's state is a double tab.
@warning_ignore("unused_parameter")
func simulate_screen_touch_release(index :int, double_tap := false) -> GdUnitSceneRunner:
## Simulates a touch screen drag&drop to the relative coordinates (offset).[br]
## [color=yellow]You must use [b]await[/b] to wait until the simulated drag&drop is complete.[/color][br]
## [br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member relative] : The relative position, indicating the drag&drop position offset.[br]
## [member time] : The time to move to the relative position in seconds (default is 1 second).[br]
## [member trans_type] : Sets the type of transition used (default is TRANS_LINEAR).[br]
## [codeblock]
## func test_touch_drag_drop():
## var runner = scene_runner("res://scenes/simple_scene.tscn")
## # start drag at position 50,50
## runner.simulate_screen_touch_drag_begin(1, Vector2(50, 50))
## # and drop it at final at 150,50 relative (50,50 + 100,0)
## await runner.simulate_screen_touch_drag_relative(1, Vector2(100,0))
## [/codeblock]
@warning_ignore("unused_parameter")
func simulate_screen_touch_drag_relative(index :int, relative: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner:
## Simulates a touch screen drop to the absolute coordinates (offset).[br]
## [color=yellow]You must use [b]await[/b] to wait until the simulated drop is complete.[/color][br]
## [br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member position] : The final position, indicating the drop position.[br]
## [member time] : The time to move to the final position in seconds (default is 1 second).[br]
## [member trans_type] : Sets the type of transition used (default is TRANS_LINEAR).[br]
## [codeblock]
## func test_touch_drag_drop():
## var runner = scene_runner("res://scenes/simple_scene.tscn")
## # start drag at position 50,50
## runner.simulate_screen_touch_drag_begin(1, Vector2(50, 50))
## # and drop it at 100,50
## await runner.simulate_screen_touch_drag_absolute(1, Vector2(100,50))
## [/codeblock]
@warning_ignore("unused_parameter")
func simulate_screen_touch_drag_absolute(index :int, position: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner:
## Simulates a touch screen drop&drop to the absolute coordinates (offset).[br]
## [color=yellow]You must use [b]await[/b] to wait until the simulated drop is complete.[/color][br]
## [br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member position] : The drag start position, indicating the drag position.[br]
## [member drop_position] : The drop position, indicating the drop position.[br]
## [member time] : The time to move to the final position in seconds (default is 1 second).[br]
## [member trans_type] : Sets the type of transition used (default is TRANS_LINEAR).[br]
## [codeblock]
## func test_touch_drag_drop():
## var runner = scene_runner("res://scenes/simple_scene.tscn")
## # start drag at position 50,50 and drop it at 100,50
## await runner.simulate_screen_touch_drag_drop(1, Vector2(50, 50), Vector2(100,50))
## [/codeblock]
@warning_ignore("unused_parameter")
func simulate_screen_touch_drag_drop(index :int, position: Vector2, drop_position: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner:
## Simulates a touch screen drag event to given position.[br]
## [member index] : The touch index in the case of a multi-touch event.[br]
## [member position] : The drag start position, indicating the drag position.[br]
@warning_ignore("unused_parameter")
func simulate_screen_touch_drag(index :int, position: Vector2) -> GdUnitSceneRunner:
## Returns the actual position of the touch drag postion by given index
## [member index] : The touch index in the case of a multi-touch event.[br]
@warning_ignore("unused_parameter")
func get_screen_touch_drag_position(index: int) -> Vector2:
- GD-566: Update HTML report page look & feel by @MikeSchulze in #567
Bug Fixes
- GD-549: Fix, error if GdUnit4 inspector tab is floating by @MikeSchulze in #552
- GD-559: Fix, inspector directory collapse toggling by @poohcom1 in #560
- GD-563: Fix, parameterized test not executed when using typed arrays end ends with invalid success state by @MikeSchulze in #572
- GD-573: Fixed the inspector double-click, inherited tests to jump to the script where the test are located by @MikeSchulze in #574
New Contributors
Full Changelog: v4.3.4...v4.4.0
v4.3.4
GdUnit4 v4.3.4
What's Changed
Improvements
- GD-544: Add Spy support for
Callable
by @MikeSchulze in #545 - GD-546: Allow to test un-typed values by
assert_that
by @MikeSchulze in #547 - Improve settings UI by @mathrick in #534
Bug Fixes
- GD-529: Fix null value access in the inspector. by @MikeSchulze in #530
- GD-531: Fix
assert_not_yet_implemented
reports the wrong line number by @MikeSchulze in #532 - GD-533: Fixes script error in
TestSuiteTemplate
when Godot was installed for the first time by @MikeSchulze in #536 - GD-537: Fix comparing objects containing built-in script type members by @MikeSchulze in #538
New Contributors
Full Changelog: v4.3.3...v4.3.4
v4.3.3
GdUnit4 v4.3.3
What's Changed
Improvements
- GD-512: Add
append_failure_message
to append custom messages to generated assert failures by @MikeSchulze in #514
Bug Fixes
- GD-517: Fix test discovery guard fails on
CSharpScript
tests when editing by @MikeSchulze in #523 - GD-518: Fix run/debug of CS tests via the context menu fails by @MikeSchulze in #524
- GD-522: Fix shortcuts can't be changed anymore in GdUnit4 settings by @MikeSchulze in #526
Other Changes
- GD-511: Remove obsolete
ProjectScanner
tool by @MikeSchulze in #513 - Bump to GdUnit4 v4.3.3 by @MikeSchulze in #515
Full Changelog: v4.3.2...v4.3.3
v4.3.2
GdUnit4 v4.3.2
Hotfix to fix Godot Editor crash on Linux
What's Changed
Improvements
- GD-497: Execute the test discovery in an additional thread so as not to block the main thread. by @MikeSchulze in #498
- GD-501: Prepare GdUnit4 for Godot 4.3.beta1 by @MikeSchulze in #502
Bug Fixes
- GD-490: Fix icon image size errors when using custom editor display scale by @MikeSchulze in #491
- GD-491: Fix Godot editor crash for Linux systems at exit by @MikeSchulze in #493
- GD-494: Fix test discovery error when test root path is set to empty by @MikeSchulze in #496
- GD-505: Move GDUnitServer instantiating and releasing to GdUnitInspector by @MikeSchulze in #510
- GD-503: Rework plugin exit to avoid system crash and memory leaks by @MikeSchulze in #504
Other Changes
- GD-506: Revisit the ScriptEditorContextMenuHandler added to the root node by @MikeSchulze in #507
- GD-508: Revisit the
EditorFileSystemContextMenuHandler
added to the root node by @MikeSchulze in #509
Full Changelog: v4.3.1...v4.3.2
GdUnit4 v4.3.1
GdUnit4 v4.3.1
Hotfix to fix Godot crash on macOS
What's Changed
Bug Fixes
- GD-481: Fix logo resource on settings dialog by @MikeSchulze in #485
- GD-483: Provide a hotfix crash at exit on
macOS
by @MikeSchulze in #484 - GD-486: Fix image size errors at startup by @MikeSchulze in #488
Full Changelog: v4.3.0...v4.3.1
GdUnit4 v4.3.0
GdUnit4 v4.3.0
DO NOT UPDATE WHEN USING MacOS!!!
there is a major issue with the plugin when exiting the Godot editor.
a bugfix is scheduled
What's Changed
With v4.3.0 there is a big update with a lot of improvements and bug fixes.
-
Improved test inspector
The entire inspector has been redesigned and now uses the original Godot icons to display the inspection status and buttons. The new sorting option allows you to sort the inspection results by different modes, and the tree view can be switched between flat and tree view.
-
Auto test discovery
The new option for detecting tests at runtime searches for available tests and records them in real time.
Improvements
- GD-421: Add
uid://
path support to Scene Runner by @mpewsey in #422 - GD-322: Complete revision of the
GdUnit
inspector and addition of test discovery by @MikeSchulze in #448 - GD-449: Implement tree sort modes by @MikeSchulze in #457
- GD-455: To show all failure reports at
gdUnitConsole
by @MikeSchulze in #463 - GD-450: Implement inspector tree view modes by @MikeSchulze in #464
Bug Fixes
- GD-413: Allow to spy on a class with enum as constructor argument by @MikeSchulze in #412
- GD-440: Improve test suite scanner to ignore non test-suite scripts by @MikeSchulze in #442
- GD-443: Fix errors when dock undock the
gdunit
inspector by @MikeSchulze in #445 - GD-451: Fix script parser to extracting the correct class name by @MikeSchulze in #453
- GD-452: Fix gdunit settings dialog to act as window close button by @MikeSchulze in #456
- GD-465: Parameterized tests are skipped with const Array values by @MikeSchulze in #466
- GD-467: Fix test suite discover when creating a new test suite by @MikeSchulze in #469
- GD-471: Support
UTF8
characters on reporting failure messages by @MikeSchulze in #473 - GD-474: Fix test Godot Runtime Error is reported repeatedly by @MikeSchulze in #475
- GD-468: Fix parameterized test argument parsing by @MikeSchulze in #476
- GD-480: Fix settings dialog has wrong theme for the background panel by @MikeSchulze in #481
Other Changes
- GD-414: Fix unclear spy test on constructor with enum parameter by @Vacui in #415
- GD-306: Do run
gdunit-action
on CI-PR without publish report by @MikeSchulze in #417 - Try to fix workflow to publish test reports by @MikeSchulze in #419
- Bump MikeSchulze/gdUnit4-action from 1.0.5 to 1.0.8 by @dependabot in #423
- Simplify
.gitattributes
by @myyk in #424 - GD-427: Do use typed variables and arguments by @MikeSchulze in #428
- Bump dorny/test-reporter from 1.9.0 to 1.9.1 by @dependabot in #441
- Bump MikeSchulze/gdUnit4-action from 1.0.8 to 1.1.1 by @dependabot in #447
New Contributors
Full Changelog: v4.2.5...v4.3.0