Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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}");
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
		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;
			}
		}
Exemplo n.º 9
0
		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);
			}
		}
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
        /// <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);
        }