static void Main(string[] args) { var builder = new DefaultTestAssemblyBuilder(); var runner = new NUnitTestAssemblyRunner(builder); var settings = new Dictionary <string, object>(); var assembly = Assembly.GetEntryAssembly(); var messages = new List <string>(); var listener = new TestListener { Log = message => messages.Add(message) // writing directly to console doesn't work for some reason }; runner.Load(assembly, settings); var result = runner.Run(listener, TestFilter.Empty); foreach (var msg in messages) { Console.WriteLine(msg); } Console.WriteLine(); Console.WriteLine(result.FailCount > 0 ? "FAILED" : "PASSED"); Console.WriteLine($"Pass: {result.PassCount}, Fail: {result.FailCount}, Skipped: {result.SkipCount}, Inconclusive: {result.InconclusiveCount}"); Console.WriteLine($"Duration: {result.Duration}"); if (Debugger.IsAttached) { Console.Write("Press any key to continue..."); Console.ReadKey(true); } }
public static void Main(string[] args) { var builder = new DefaultTestAssemblyBuilder(); var runner = new NUnitTestAssemblyRunner(builder); runner.Load(Assembly.GetEntryAssembly(), new Dictionary <string, object>()); runner.Run(new TestListener(), new TestFilter()); Console.ReadKey(); }
private static ITest GetITest(Assembly assembly, string commandLineOptions) { // we should control what `options` holds var options = new NUnitLiteOptions(commandLineOptions.Split(' ')); var builder = new DefaultTestAssemblyBuilder(); var runSettings = TextRunner.MakeRunSettings(options); return(builder.Build(assembly, runSettings)); }
IEnumerable <TestAssembly> GetTestSuites() { var builder = new DefaultTestAssemblyBuilder(); var settings = new Dictionary <string, object>(); foreach (var assembly in ((TestApplication)TestApplication.Instance).TestAssemblies) { yield return(builder.Build(assembly, settings) as TestAssembly); } }
static void Main(string[] args) { var builder = new DefaultTestAssemblyBuilder(); var runner = new NUnitTestAssemblyRunner(builder); runner.Load(typeof(Program).GetTypeInfo().Assembly, settings: new Dictionary <string, object> { }); runner.Run(new ConsoleTestListener(), TestFilter.Empty); while (runner.IsTestRunning) { Thread.Sleep(500); } }
static void _Main(string[] args) { var output = Console.Out; // capture console.out as nunit overrides it when running var builder = new DefaultTestAssemblyBuilder(); var runner = new NUnitTestAssemblyRunner(builder); var settings = new Dictionary <string, object>(); var assembly = Assembly.GetEntryAssembly(); var listener = new TestListener { Log = output.WriteLine }; runner.Load(assembly, settings); var result = runner.Run(listener, TestFilter.Empty); Console.WriteLine(); Console.WriteLine(result.FailCount > 0 ? "FAILED" : "PASSED"); Console.WriteLine($"Pass: {result.PassCount}, Fail: {result.FailCount}, Skipped: {result.SkipCount}, Inconclusive: {result.InconclusiveCount}"); Console.WriteLine($"Duration: {result.Duration}"); }
public TestResult Run(string exePath, string exercise) { if (!File.Exists(exePath)) { throw new SwpTestToolException("Der angegebene Pfad führt zu keiner Exe Datei"); } TypeProvider.Initialize(_loggerFacade, exePath); var exerciseTestDefintion = ExerciseTestDefintionFactory.Get(exercise); var defaultTestAssemblyBuilder = new DefaultTestAssemblyBuilder(); var nUnitTestAssemblyRunner = new NUnitTestAssemblyRunner(defaultTestAssemblyBuilder); var testGroupResults = new TestResult(); foreach (var testDefintion in exerciseTestDefintion.TestDefintions) { var typeMappingContainer = new TypeMappingContainer(); testDefintion.RegisterTypeMappings(typeMappingContainer); TypeProvider.RegisterTypeMappings(typeMappingContainer); if (!TypeProvider.CheckIfAttributeAssemblyExists()) { break; } if (!TypeProvider.CheckCorrectVersionOfAttributeAssembly(testDefintion.GetAssemblyIdentifier)) { break; } var testListener = new CustomTestListener(testDefintion.TestGroupName); nUnitTestAssemblyRunner.Load(Assembly.GetAssembly(testDefintion.GetAssemblyIdentifier), new Dictionary <string, string>()); nUnitTestAssemblyRunner.Run(testListener, new TestMethodFilter()); testGroupResults.AddTestCaseGroupResult(testListener.TestCaseGroupResult); } return(testGroupResults); }
IEnumerable<TestAssembly> GetTestSuites() { var builder = new DefaultTestAssemblyBuilder(); var settings = new Dictionary<string, object>(); foreach (var assembly in ((TestApplication)TestApplication.Instance).TestAssemblies) { yield return builder.Build(assembly, settings) as TestAssembly; } }
async void RunTests(CategoryFilter filter = null) { if (!startButton.Enabled) return; startButton.Enabled = false; var keywords = search.Text; Log.Write(null, "Starting tests..."); var testPlatform = useTestPlatform.Checked == true ? new TestPlatform() : Platform; try { await Task.Run(() => { using (Platform.ThreadStart()) { try { var listener = new TestListener { Application = Application.Instance }; // use running application for logging var builder = new DefaultTestAssemblyBuilder(); var runner = new NUnitTestAssemblyRunner(builder); var settings = new Dictionary<string, object>(); var result = new MultipleTestResult(); if (filter != null) filter.SkipCount = 0; foreach (var assembly in ((TestApplication)TestApplication.Instance).TestAssemblies) { runner.Load(assembly, settings); filter = filter ?? new CategoryFilter(); filter.Application = Application.Instance; filter.ExecutingAssembly = assembly; if (testPlatform is TestPlatform) filter.IncludeCategories.Add(UnitTests.TestUtils.TestPlatformCategory); else filter.IncludeCategories.RemoveAll(r => r == UnitTests.TestUtils.TestPlatformCategory); filter.Keyword = keywords; using (testPlatform.Context) { result.Results.Add(runner.Run(listener, filter)); } } var writer = new StringWriter(); writer.WriteLine(result.FailCount > 0 ? "FAILED" : "PASSED"); writer.WriteLine("\tPass: {0}, Fail: {1}, Skipped: {2}, Inconclusive: {3}", result.PassCount, result.FailCount, result.SkipCount + filter.SkipCount, result.InconclusiveCount); writer.Write("\tDuration: {0}", result.Duration); Application.Instance.Invoke(() => Log.Write(null, writer.ToString())); } catch (Exception ex) { Application.Instance.Invoke(() => Log.Write(null, "Error running tests: {0}", ex)); } finally { Application.Instance.Invoke(() => startButton.Enabled = true); } } }); } catch (Exception ex) { Log.Write(null, "Error running tests\n{0}", ex); } }
async void RunTests(CategoryFilter filter = null) { if (!startButton.Enabled) { return; } startButton.Enabled = false; var keywords = search.Text; Log.Write(null, "Starting tests..."); var testPlatform = useTestPlatform.Checked == true ? new TestPlatform() : Platform; var runManualTests = includeManualTests.Checked == true; try { await Task.Run(() => { using (Platform.ThreadStart()) { try { var listener = new TestListener { Application = Application.Instance }; // use running application for logging var builder = new DefaultTestAssemblyBuilder(); var runner = new NUnitTestAssemblyRunner(builder); var settings = new Dictionary <string, object>(); var result = new MultipleTestResult(); if (filter != null) { filter.SkipCount = 0; } foreach (var assembly in ((TestApplication)TestApplication.Instance).TestAssemblies) { runner.Load(assembly, settings); filter = filter ?? new CategoryFilter(); filter.Application = Application.Instance; filter.ExecutingAssembly = assembly; if (!runManualTests) { filter.ExcludeCategories.Add(UnitTests.TestBase.ManualTestCategory); } if (testPlatform is TestPlatform) { filter.IncludeCategories.Add(UnitTests.TestBase.TestPlatformCategory); } else { filter.IncludeCategories.RemoveAll(r => r == UnitTests.TestBase.TestPlatformCategory); } filter.Keyword = keywords; using (testPlatform.Context) { result.Results.Add(runner.Run(listener, filter)); } } var writer = new StringWriter(); writer.WriteLine(result.FailCount > 0 ? "FAILED" : "PASSED"); writer.WriteLine("\tPass: {0}, Fail: {1}, Skipped: {2}, Inconclusive: {3}", result.PassCount, result.FailCount, result.SkipCount + filter.SkipCount, result.InconclusiveCount); writer.Write("\tDuration: {0}", result.Duration); Application.Instance.Invoke(() => Log.Write(null, writer.ToString())); } catch (Exception ex) { Application.Instance.Invoke(() => Log.Write(null, "Error running tests: {0}", ex)); } finally { Application.Instance.Invoke(() => startButton.Enabled = true); } } }); } catch (Exception ex) { Log.Write(null, "Error running tests\n{0}", ex); } }
/// <summary> /// Extract NUnit test tree. /// </summary> /// <param name="assembly">Assembly containing NUnit tests.</param> /// <returns>Complete NUnit test tree.</returns> public static ITest ExtractTestTree(Assembly assembly) { var tree = new DefaultTestAssemblyBuilder().Build(assembly, new Dictionary <string, object>()); return(tree); }