private static void AddTestResultInSuite(TestSuite testSuite, NunitTestResult testResult)
        {
            //Конвертер результатов из результатов НЮнит в наш собственный объект.
            var result = new TestResult
            {
                Name = testResult.FullName,
                ExecutionTime = testResult.Time,
                TestStatus = testResult.IsSuccess ? Status.Passed : Status.Failed,
                ExceptionMessage = testResult.Message

            };

            testSuite.TestResults.Add(result);
        }
 public static void ParseTestResults(TestSuite testSuite, NunitTestResult testResult)
 {
     //Рекурсивный парсер результатов исполнения теста.
     //Все результаты представлены в виде древовидной структуры, аналогично тестам в assembly (см. метод ParseTestsFromAssembly)
     if (!testResult.HasResults)
     {
         AddTestResultInSuite(testSuite, testResult);
     }
     else
     {
         foreach (NunitTestResult innerTestResult in testResult.Results)
         {
             ParseTestResults(testSuite, innerTestResult);
         }
     }
 }
Example #3
0
        public TestSuite LoadAssembly(IList<string> filePaths)
        {
            var testSuite = new TestSuite
                {
                    TestSuiteId = 0,
                    TestResults = new List<TestResult>()
                };

            try
            {
                _package = new TestPackage(_projectName);

                testSuite.Name = _package.FullName;

                foreach (string path in filePaths)
                {
                    _package.Assemblies.Add(path);
                }

                _isRunnerReady = _testRunner.Load(_package);
                var testsFromAssemblies = new List<TestNode>();
                TestAnalyzerHelper.ParseTestsFromAssembly(testsFromAssemblies, _testRunner.Test.Tests);

                foreach (TestNode test in testsFromAssemblies)
                {
                    testSuite.TestResults.Add(new TestResult
                    {
                        Name = test.TestName.FullName,
                        TestId = test.TestName.RunnerID,
                        TestStatus = Status.NotRun,
                        ExceptionMessage = null,
                        TestSuiteId = testSuite.TestSuiteId
                    });
                }
            }
            catch (Exception)
            {
                _isRunnerReady = false;
            }

            return testSuite;
        }
Example #4
0
        public TestResult ExecuteTest(string testName)
        {
            if (_isRunnerReady)
               {
               var result = new NunitTestResult(new TestName());
               var filter = new SimpleNameFilter();
               filter.Add(testName);

               result = _testRunner.Run(_eventListener, filter, false, LoggingThreshold.Off);

               var testSuiteResult = new TestSuite
               {
                   Name = _projectName,
                   TestResults = new List<TestResult>()
               };

               TestAnalyzerHelper.ParseTestResults(testSuiteResult, result);
               return testSuiteResult.TestResults.First();
               }

               return new TestResult();
        }