private static void RunEditorTests(string resultFilePath, string verboseLog, string[] nameFilter, string[] categoryFilter) { object[] args = new object[] { string.Join(", ", nameFilter), string.Join(", ", categoryFilter) }; Debug.LogFormat("Running editor tests...\nName filter: {0}\nCategory filter: {1}", args); TestRunnerFilter filter = new TestRunnerFilter { names = nameFilter, categories = categoryFilter }; if (string.IsNullOrEmpty(resultFilePath)) { resultFilePath = Path.Combine(Directory.GetCurrentDirectory(), "EditorTestResults.xml"); } else if (Directory.Exists(resultFilePath)) { resultFilePath = Path.Combine(resultFilePath, "EditorTestResults.xml"); } if (!Directory.Exists(Path.GetDirectoryName(resultFilePath))) { Directory.CreateDirectory(Path.GetDirectoryName(resultFilePath)); } EditorSceneManager.NewScene(NewSceneSetup.EmptyScene); NUnitTestEngine engine = new NUnitTestEngine(); new TestListBuilder().GetTests(engine.testSuite, null); engine.RunTests(filter, new TestRunnerEventListener(resultFilePath, GetVerboseTestLogger(verboseLog))); }
/// <summary> /// <para>Execute editor tests run.</para> /// </summary> /// <param name="testRunnerCallback">Test runner callback.</param> /// <param name="nameFilter">Test names to run.</param> /// <param name="categoryFilter">Categories to run.</param> public static void RunTests(ITestRunnerCallback testRunnerCallback, string[] nameFilter, string[] categoryFilter) { TestRunnerFilter filter = new TestRunnerFilter { names = nameFilter, categories = categoryFilter }; NUnitTestEngine engine = new NUnitTestEngine(); if (engine.testSuite == null) { Debug.Log("No tests were found. Compilation error?"); EditorApplication.Exit(3); } new TestListBuilder().GetTests(engine.testSuite, null); engine.RunTests(filter, testRunnerCallback); }