18 lines
987 B
GDScript
18 lines
987 B
GDScript
class_name GdUnitTestSuiteBuilder
|
|
extends RefCounted
|
|
|
|
|
|
static func create(source :Script, line_number :int) -> GdUnitResult:
|
|
var test_suite_path := GdUnitTestSuiteScanner.resolve_test_suite_path(source.resource_path, GdUnitSettings.test_root_folder())
|
|
# we need to save and close the testsuite and source if is current opened before modify
|
|
ScriptEditorControls.save_an_open_script(source.resource_path)
|
|
ScriptEditorControls.save_an_open_script(test_suite_path, true)
|
|
if GdObjects.is_cs_script(source):
|
|
return GdUnit4CSharpApiLoader.create_test_suite(source.resource_path, line_number+1, test_suite_path)
|
|
var parser := GdScriptParser.new()
|
|
var lines := source.source_code.split("\n")
|
|
var current_line := lines[line_number]
|
|
var func_name := parser.parse_func_name(current_line)
|
|
if func_name.is_empty():
|
|
return GdUnitResult.error("No function found at line: %d." % line_number)
|
|
return GdUnitTestSuiteScanner.create_test_case(test_suite_path, func_name, source.resource_path)
|