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); } } }
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; }
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(); }