1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- extends Node
- var test_passes := 0
- var test_failures := 0
- func __get_stack_frame():
- var me = get_script()
- for s in get_stack():
- if s.source == me.resource_path:
- return s
- return null
- func __assert_pass():
- test_passes += 1
- func __assert_fail():
- test_failures += 1
- var s = __get_stack_frame()
- if s != null:
- print_rich ("[color=red] == FAILURE: In function %s() from '%s' on line %s[/color]" % [s.function, s.source, s.line])
- else:
- print_rich ("[color=red] == FAILURE (run with --debug to get more information!) ==[/color]")
- func assert_equal(actual, expected):
- if actual == expected:
- __assert_pass()
- else:
- __assert_fail()
- print (" |-> Expected '%s' but got '%s'" % [expected, actual])
- func assert_true(v):
- assert_equal(v, true)
- func assert_false(v):
- assert_equal(v, false)
- func assert_not_equal(actual, expected):
- if actual != expected:
- __assert_pass()
- else:
- __assert_fail()
- print (" |-> Expected '%s' NOT to equal '%s'" % [expected, actual])
- func exit_with_status() -> void:
- var success: bool = (test_failures == 0)
- print ("")
- print_rich ("[color=%s] ==== TESTS FINISHED ==== [/color]" % ("green" if success else "red"))
- print ("")
- print_rich (" PASSES: [color=green]%s[/color]" % test_passes)
- print_rich (" FAILURES: [color=red]%s[/color]" % test_failures)
- print ("")
- if success:
- print_rich("[color=green] ******** PASSED ******** [/color]")
- else:
- print_rich("[color=red] ******** FAILED ********[/color]")
- print("")
- get_tree().quit(0 if success else 1)
|