I've released version 3.0 of GUT (or Gut, or gut, not GUt or GuT though). &nbsp;I've &nbsp;moved the repository to Github for higher visibility. &nbsp;I've made it easier to setup and use. &nbsp;I've reworked the readme...I was a wee bit wordy with the old one.<br><br>This release is backwards compatible with previous releases but there are a few caveats that are covered in the release notes.<br><br>I've created about 1000 tests using this tool and it's been a great tool in developing my game. &nbsp;I welcome any and all feedback and pull requests.<br><br>Release notes:<br>https://github.com/bitwes/Gut/releases/tag/3.0.0<br><br>Github repo:<br>https://github.com/bitwes/Gut<br>

16 days later

That looks like a very good unit test system. Will definitely use for my projects! Thank you very much!

3 months later
a month later

you should include your README.md file in the releases :P

6 days later

I'd agree with that. It should be there now....since I just refactored it to be a plugin! It is awaiting approval in the asset library.

Here's the release notes: https://github.com/bitwes/Gut/releases/tag/4.0.0

There are some breaking changes due to the install location changing and some organizational changes. These are covered in the release notes and again in the README.

a year later

Version 6.0.0 has been released and is Godot 3.0 compatible. New version of plugin has been submitted. In the meantime you can get it here: https://github.com/bitwes/Gut

Happy testing.

25 days later

Version 6.1.0 Released

Some bug fixes and some reorg of the repo so it is a little easier to handle when installing from in-engine AssetLib. No breaking changes.

New Features: Summary now lists all failing/pending tests and the reason for the fails. No more scrolling back through all your tests to see exactly what went wrong. New yield_to method that allows you to yield to a signal or a maximum amount of time.

21 days later
19 days later

Gut 6.3.0 released.

The readme has been converted to a wiki for easier consumption.

You can now have Inner Test classes. This helps organize your tests better in a single test script. It allows you to have multiple contexts for your tests. No more making one setup that works for 100 different unrelated tests. Now you can have 10 Inner Test classes in one script. Each with their own setup/teardown/variables etc.

Experimental Doubles and Stubs. I'm really excited about this feature but I don't know how right I got it. Looking forward to hearing people's thoughts.

There was another reorg to the repo, this should be the last. If you have a tool in the Asset Library, and don't know about the .gitattributes file...check it out. It can keep files out of the zip that Github generates which makes distributing your tool MUCH easier for you users, especially when installed directly from the editor.

More info at: https://github.com/bitwes/Gut/blob/master/CHANGES.md https://github.com/bitwes/Gut https://github.com/bitwes/Gut/wiki

As always, happy testing everyone!

25 days later

Another Gut release (6.4.0). This one introduces Spies and fixes a dumb mistake with original doubles implementation. There's also a new assert and a couple command line options. Thanks goes out to Myrkeim and cmfmcf for their PRs.

I've been dog fooding this release in my own game and I like where it's heading. Doubling, stubbing and using the new spy asserts has helped me remove some dependencies from tests and made my unit tests more unit-like and less integration-like.

I've also been having a lot of fun creating Inner Test classes for better organization of my test scripts. Inner Test classes were introduced in the last release and I'm already not sure how I made it this far without them.

I'd love to hear any feedback. As always...happy testing everybody.

https://github.com/bitwes/Gut https://github.com/bitwes/Gut/blob/master/CHANGES.md https://github.com/bitwes/Gut/wiki

2 months later

The latest version of the Godot Unit Testing tool has been released. There's some bug fixes, a maximize option and 2 brand new asserts assert_almost_eq and assert_almost_ne for all your ranged assert needs. Thanks to all those contributed PRs.

It's live on Github, the new version has been submitted to the Asset Library and should be up in a day or so.

https://github.com/bitwes/Gut/blob/master/CHANGES.md https://github.com/bitwes/Gut/wiki https://github.com/bitwes/Gut

3 months later
2 months later

Version 6.1.1 Released. Please upgrade, possible big issue.

Issue 95 is a doozy and can clear files in res://. I haven't seen this happen in the wild but it did happen a couple times when running the the Gut test suite and only when running the doubler tests (test_doubler.gd).

Evidently I got lazy and forgot to check output from opening a directory.

var dir = Directory.new()
dir.open(_output_dir)
<delete everything in dir>

Here's what I should have done:

var d = Directory.new()
var result = d.open(_output_dir)
if(result == OK):
    <delete everything in dir>

The error resulted in the directory opened being res:// which I then proceed to delete all the files in the root of the project. The error returned was 31 and I'm not 100% sure why it happens but I figured I could sort that out after the fix was up.

Always check those returns.

Release Notes: Issue 60: Improved signal assert failure messages in some cases by having them include a list of signals that were emitted for the object. Issue 88: Fixed issue where you couldn't specify the config_file from the command line. * Issue 95: Fixed issue where sometimes Gut can end up clearing files from res:\\ when using doubling.

a month later

Fantastic tool! I set up a little CI pipeline using Drone and Git Tea that automatically runs GUT tests every commit. Maybe a little excessive for my one person project. :smile:

a month later

@ugly_cat said: Fantastic tool! I set up a little CI pipeline using Drone and Git Tea that automatically runs GUT tests every commit. Maybe a little excessive for my one person project. :smile:

That's fantastic! Well done.

Version 6.6.2 of Gut (Godot Unit Test) released. Doubling, Spying, Stubbing is no longer experimental. You can double Inner Classes now. The "double" method is now super smart and more intuitive to use. A bunch of spelling corrections and a bug fix. New Doubling Strategy experimental feature which allows you to spy on methods from Godot Built-ins you didn't implement. https://github.com/bitwes/Gut/wiki/Doubles Rainware made a setup tutorial to help get you testing faster:

https://github.com/bitwes/Gut https://github.com/bitwes/Gut/releases/ https://github.com/bitwes/Gut/blob/master/CHANGES.md https://github.com/bitwes/Gut/wiki

Feedback and Pull Requests always welcomed. Happy testing everyone!

@bitwes said: * Rainware made a setup tutorial to help get you testing faster

That is awesome, thanks for the update and thanks to Rainware for the video.