Skip to content

Errors that occur between tests are not counted. #785

@bitwes

Description

@bitwes

Versions

  • Godot: 4.5.1
  • GUT: 9.5.1
  • OS: MacOS

The Bug

Errors that occur between tests are not counted. I had a scene that was set to be autofreed. After the end of the test, its _process still fired a couple times while GUT was doing cleanup. This caused errors that appeared in the log but were not counted by GUT.

A bucket for errors should be added that would count the errors in these transitions and associate them with the most appropriate test. I'm not sure it could make an already passing test fail (it can't in the log, but maybe in the summary).

Additional error gates should be added if they don't already exist

  • After script loaded
  • After before_all
  • After before_each
  • After after_each for a test
  • After after_all for a script
  • After script unloaded

Steps To Reproduce

This isn't exactly what was happening but it does cause an error with roughly the same timing.

extends GutTest

class ErrorThing:
	extends Node

	func _notification(what: int) -> void:
		if(what == NOTIFICATION_PREDELETE):
			push_error('predelete error')


func test_make_errors_happen_after_test():
	var et = add_child_autoqfree(ErrorThing.new())
	pass_test('example')

Errors appear in the log, but the test passes and there is no indication in the summary that any errors occurred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions