diff options
Diffstat (limited to 'addons/gut/gut.gd')
| -rw-r--r-- | addons/gut/gut.gd | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/addons/gut/gut.gd b/addons/gut/gut.gd index bc00f76..6e5dc02 100644 --- a/addons/gut/gut.gd +++ b/addons/gut/gut.gd @@ -38,9 +38,6 @@ var _inner_class_name = '' var _should_maximize = false setget set_should_maximize, get_should_maximize var _log_level = 1 setget set_log_level, get_log_level var _disable_strict_datatype_checks = false setget disable_strict_datatype_checks, is_strict_datatype_checks_disabled -var _test_prefix = 'test_' -var _file_prefix = 'test_' -var _file_extension = '.gd' var _inner_class_prefix = 'Test' var _temp_directory = 'user://gut_temp_directory' var _export_path = '' setget set_export_path, get_export_path @@ -138,6 +135,8 @@ var _before_all_test_obj = load('res://addons/gut/test_collector.gd').Test.new() # Used for proper assert tracking and printing during after_all var _after_all_test_obj = load('res://addons/gut/test_collector.gd').Test.new() + +var _file_prefix = 'test_' const SIGNAL_TESTS_FINISHED = 'tests_finished' const SIGNAL_STOP_YIELD_BEFORE_TEARDOWN = 'stop_yield_before_teardown' @@ -602,33 +601,36 @@ func _do_yield_between(frames=2): _yield_frames = frames return self + # ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------ func _wait_for_done(result): - var iter_counter = 0 - var print_after = 3 - # callback method sets waiting to false. result.connect(COMPLETED, self, '_on_test_script_yield_completed') if(!_was_yield_method_called): - _lgr.log('-- Yield detected, waiting --', _lgr.fmts.yellow) + _lgr.yield_msg('-- Yield detected, waiting --') _was_yield_method_called = false _waiting = true - _wait_timer.set_wait_time(0.4) + var cycles_per_dot = 500 + var cycles = 0 var dots = '' + while(_waiting): - iter_counter += 1 - _lgr.yield_text('waiting' + dots) - _wait_timer.start() - yield(_wait_timer, 'timeout') - dots += '.' - if(dots.length() > 5): - dots = '' + yield(get_tree(), 'idle_frame') + cycles += 1 + + if(cycles >= cycles_per_dot): + cycles = 0 + dots += '.' + if(dots.length() > 5): + dots = '' + _lgr.yield_text('waiting' + dots) _lgr.end_yield() + # ------------------------------------------------------------------------------ # returns self so it can be integrated into the yield call. # ------------------------------------------------------------------------------ @@ -637,6 +639,7 @@ func _wait_for_continue_button(): _waiting = true return self + # ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------ func _call_deprecated_script_method(script, method, alt): @@ -895,8 +898,11 @@ func _test_the_scripts(indexes=[]): # _run_test calls _wait for done, just wait for that to finish yield(script_result, COMPLETED) - if(_current_test.assert_count == 0 and !_current_test.pending): + if(!_current_test.did_assert()): _lgr.warn('Test did not assert') + + _gui.add_test(_current_test.did_pass()) + _current_test.has_printed_name = false _gui.set_progress_test_value(i + 1) emit_signal('test_finished') @@ -949,7 +955,8 @@ func _pass(text=''): func _fail(text=''): _gui.add_failing() # increments counters if(_current_test != null): - var line_text = ' at line ' + str(_extract_line_number(_current_test)) + var line_number = _extract_line_number(_current_test) + var line_text = ' at line ' + str(line_number) p(line_text, LOG_LEVEL_FAIL_ONLY) # format for summary line_text = "\n " + line_text @@ -959,6 +966,7 @@ func _fail(text=''): _new_summary.add_fail(_current_test.name, call_count_text + text + line_text) _current_test.passed = false _current_test.assert_count += 1 + _current_test.line_number = line_number else: if(_new_summary != null): # b/c of tests. _new_summary.add_fail('script level', text) @@ -1074,7 +1082,9 @@ func test_scripts(run_rest=false): if(_script_name != null and _script_name != ''): var indexes = _get_indexes_matching_script_name(_script_name) if(indexes == []): - _lgr.error('Could not find script matching ' + _script_name) + _lgr.error(str( + "Could not find script matching '", _script_name, "'.\n", + "Check your directory settings and Script Prefix/Suffix settings.")) else: _test_the_scripts(indexes) else: @@ -1110,7 +1120,7 @@ func add_script(script): # with the suffix. Does not look in sub directories. Can be called multiple # times. # ------------------------------------------------------------------------------ -func add_directory(path, prefix=_file_prefix, suffix=_file_extension): +func add_directory(path, prefix=_file_prefix, suffix=".gd"): # check for '' b/c the calls to addin the exported directories 1-6 will pass # '' if the field has not been populated. This will cause res:// to be # processed which will include all files if include_subdirectories is true. @@ -1124,7 +1134,9 @@ func add_directory(path, prefix=_file_prefix, suffix=_file_extension): else: var files = _get_files(path, prefix, suffix) for i in range(files.size()): - add_script(files[i]) + if(_script_name == null or _script_name == '' or \ + (_script_name != null and files[i].findn(_script_name) != -1)): + add_script(files[i]) # ------------------------------------------------------------------------------ @@ -1358,7 +1370,7 @@ func set_yield_time(time, text=''): msg += ' --' else: msg += ': ' + text + ' --' - _lgr.log(msg, _lgr.fmts.yellow) + _lgr.yield_msg(msg) _was_yield_method_called = true return self @@ -1375,7 +1387,7 @@ func set_yield_frames(frames, text=''): msg += ' --' else: msg += ': ' + text + ' --' - _lgr.log(msg, _lgr.fmts.yellow) + _lgr.yield_msg(msg) _was_yield_method_called = true _yield_frames = max(frames + 1, 1) @@ -1393,7 +1405,7 @@ func set_yield_signal_or_time(obj, signal_name, max_wait, text=''): _yield_timer.set_wait_time(max_wait) _yield_timer.start() _was_yield_method_called = true - _lgr.log(str('-- Yielding to signal "', signal_name, '" or for ', max_wait, ' seconds -- ', text), _lgr.fmts.yellow) + _lgr.yield_msg(str('-- Yielding to signal "', signal_name, '" or for ', max_wait, ' seconds -- ', text)) return self # ------------------------------------------------------------------------------ |
