Skip to content

Releases: MikeSchulze/gdUnit4

v4.4.0

23 Sep 14:45
38e6895
Compare
Choose a tag to compare

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
    image
  • 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:

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

22 Jul 13:39
3edc885
Compare
Choose a tag to compare

GdUnit4 v4.3.4

What's Changed

Improvements

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

28 Jun 11:32
30481e9
Compare
Choose a tag to compare

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

Full Changelog: v4.3.2...v4.3.3

v4.3.2

19 Jun 04:57
72560ef
Compare
Choose a tag to compare

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

01 Jun 08:52
b9766fc
Compare
Choose a tag to compare

GdUnit4 v4.3.1

Hotfix to fix Godot crash on macOS

What's Changed

Bug Fixes

Full Changelog: v4.3.0...v4.3.1

GdUnit4 v4.3.0

29 May 14:19
030ac1d
Compare
Choose a tag to compare

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.
    image

  • Auto test discovery
    The new option for detecting tests at runtime searches for available tests and records them in real time.
    image

  • GdUnit4 has got a new logo
    image

Improvements

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

GdUnit4 v4.2.5

23 Apr 13:26
60465f5
Compare
Choose a tag to compare

GdUnit4 v4.2.5

What's Changed

Bug Fixes

  • GD-399: Fix typo for first argument in GdUnitStringAssert#has_length by @MikeSchulze in #404
  • GD-409: Fix skip excluded test suites by runner configuration by @MikeSchulze in #410

Other Changes

  • GD-396: Update C# API bridge to gdUnit4Net v4.2.2 by @MikeSchulze in #397
  • GD-401: Added support for action input events on scene runner by @rsubtil in #398
  • GD-405: Update workflows to support latest Godot versions by @MikeSchulze in #406

New Contributors

Full Changelog: v4.2.4...v4.2.5

GdUnit4 v4.2.4

09 Apr 17:41
52de9ad
Compare
Choose a tag to compare

What's Changed

Bug Fixes

  • GD-383: Fix parsing of test with comments in the signature by @MikeSchulze in #384
  • GD-385: Fix runtest.sh not working for GODOT_BIN with spaces by @dsychin in #386
  • GD-389: The inheritance of a base test class leads to an incorrect test case list. by @MikeSchulze in #391
  • GD-390: A test suite without tests leads to be listed as test suite with 0 test cases in the Test Explorer by @MikeSchulze in #393

Other Changes

New Contributors

Full Changelog: v4.2.3...v4.2.4

GdUnit4 v4.2.3

31 Mar 07:01
b47e847
Compare
Choose a tag to compare

What's Changed

Bug Fixes

  • GD-368: Fix runtime test parameter set resolving by @MikeSchulze in #369
  • GD-370: Mock a class with functions return type enum results in an error Parser Error: Cannot return a value of type "null" by @MikeSchulze in #371
  • GD-374: Improve mocking of fuctions with return type enum by @MikeSchulze in #375
  • GD-373: Fix invalid push error notifications on scene runner at _reset_input_to_default by @MikeSchulze in #376

Other Changes

  • GD-380: Add cmd option to allow running with --headless mode by @MikeSchulze in #381

Full Changelog: v4.2.2...v4.2.3

GdUnit4 v4.2.2

11 Mar 18:39
9727cdf
Compare
Choose a tag to compare

GdUnit4 v4.2.2

What's Changed

Improvements

  • GD-359 : Add support for dynamic test parameter resolving for parameterized tests by @MikeSchulze in #361
  • GD-356: SceneRunner made more robust by @MikeSchulze in #362
  • GD-353: Redesign GdUnit4 inspector context menu by @MikeSchulze in #364

Other Changes

  • GD-348: Change gdUnit3 to gdUnit4 in report templates, fix some spelling errors by @Eggbertx in #349
  • GD-363: Follow-up to fix errors on parameterized test naming resolving by @MikeSchulze in #366
  • Refer to the scripts using res:// URL. by @vikerman in #367

New Contributors

Full Changelog: v4.2.1...v4.2.2