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