Esempio n. 1
0
 public MutationTestProject(string testProjectPath, MutationLevel mutationLevel, int parallel,
                            ILoggerFactory loggerFactoryFactory, ITestHostRunFactory testHostRunFactory, TimeSpan timeOut)
 {
     _testProjectPath    = testProjectPath;
     _mutationLevel      = mutationLevel;
     _parallel           = parallel;
     _testHostRunFactory = testHostRunFactory;
     _timeOut            = timeOut;
     _testHostLogger     = loggerFactoryFactory.CreateLogger("Faultify.TestHost");
 }
Esempio n. 2
0
        private async Task <TestProjectReportModel> RunMutationTest(Settings settings,
                                                                    MutationSessionProgressTracker progressTracker)
        {
            ITestHostRunFactory testHost = settings.TestHost switch
            {
                _ => new DotnetTestHostRunnerFactory() // TODO: Use Faultify.TestRunner.XUnit/NUnit for in memory testing.
            };

            var mutationTestProject =
                new MutationTestProject(settings.TestProjectPath, settings.MutationLevel, settings.Parallel,
                                        _loggerFactory, testHost, settings.TimeOut);

            return(await mutationTestProject.Test(progressTracker, CancellationToken.None));
        }
Esempio n. 3
0
        public async Task <IEnumerable <TestRunResult> > RunMutationTestAsync(TimeSpan timeout,
                                                                              MutationSessionProgressTracker sessionProgressTracker, ITestHostRunFactory testHostRunnerFactory,
                                                                              TestProjectDuplication testProject, ILogger logger)
        {
            ExecuteMutations(testProject);

            var runningTests = _mutationVariants.Where(y => !y.CausesTimeOut)
                               .SelectMany(x => x.MutationIdentifier.TestCoverage);

            var testRunner = testHostRunnerFactory.CreateTestRunner(testProject.TestProjectFile.FullFilePath(),
                                                                    timeout, logger);

            var testResults =
                await testRunner.RunTests(timeout, sessionProgressTracker, runningTests);

            ResetMutations(testProject);

            return(new List <TestRunResult>
            {
                new()
                {
                    TestResults = testResults,
                    Mutations = _mutationVariants
                }
            });