private ICoverageEngine SetupCodeCoverageEngine( TestOptions options, ChutzpahTestSettingsFile chutzpahTestSettings, IFrameworkDefinition definition, List <ReferencedFile> referencedFiles) { ICoverageEngine coverageEngine = GetConfiguredCoverageEngine(options, chutzpahTestSettings); if (coverageEngine != null) { var deps = coverageEngine.GetFileDependencies(definition, chutzpahTestSettings); foreach (string item in deps) { string sourcePath = Path.Combine(fileProbe.BuiltInDependencyDirectory, item); ChutzpahTracer.TraceInformation( "Added code coverage dependency '{0}' to referenced files", sourcePath); referencedFiles.Add( new ReferencedFile { IsLocal = true, IsCodeCoverageDependency = true, Path = sourcePath, IncludeInTestHarness = true }); } } return(coverageEngine); }
public TestContextBuilder( IFileSystemWrapper fileSystem, IReferenceProcessor referenceProcessor, IHttpWrapper httpWrapper, IFileProbe fileProbe, ICoverageEngineFactory coverageEngineFactory, IEnumerable <IFrameworkDefinition> frameworkDefinitions, IChutzpahTestSettingsService settingsService) { this.referenceProcessor = referenceProcessor; this.httpClient = httpWrapper; this.fileSystem = fileSystem; this.fileProbe = fileProbe; this.frameworkDefinitions = frameworkDefinitions; this.settingsService = settingsService; this.mainCoverageEngine = coverageEngineFactory.CreateCoverageEngine(); }
public TestContextBuilder( IReferenceProcessor referenceProcessor, IFileSystemWrapper fileSystem, IHttpWrapper httpWrapper, IFileProbe fileProbe, IHasher hasher, ICoverageEngine coverageEngine, IJsonSerializer serializer, IEnumerable<IFrameworkDefinition> frameworkDefinitions, IEnumerable<IFileGenerator> fileGenerators) { this.referenceProcessor = referenceProcessor; this.httpClient = httpWrapper; this.fileSystem = fileSystem; this.fileProbe = fileProbe; this.hasher = hasher; this.serializer = serializer; this.frameworkDefinitions = frameworkDefinitions; this.fileGenerators = fileGenerators; mainCoverageEngine = coverageEngine; }
public TestCaseStreamReader(ICoverageEngine coverageEngine) { jsonSerializer = new JsonSerializer(); this.coverageEngine = coverageEngine; }
private string CreateTestHarness( IFrameworkDefinition definition, ChutzpahTestSettingsFile chutzpahTestSettings, TestOptions options, string inputTestFilePath, IEnumerable<ReferencedFile> referencedFiles, ICoverageEngine coverageEngine, IList<string> temporaryFiles) { string inputTestFileDir = Path.GetDirectoryName(inputTestFilePath); string testFilePathHash = hasher.Hash(inputTestFilePath); string testHarnessDirectory; switch (chutzpahTestSettings.TestHarnessLocationMode) { case TestHarnessLocationMode.TestFileAdjacent: testHarnessDirectory = inputTestFileDir; break; case TestHarnessLocationMode.SettingsFileAdjacent: testHarnessDirectory = chutzpahTestSettings.SettingsFileDirectory; break; case TestHarnessLocationMode.Custom: testHarnessDirectory = chutzpahTestSettings.TestHarnessDirectory; break; default: throw new ArgumentOutOfRangeException("chutzpahTestSettings"); } string testHtmlFilePath = Path.Combine(testHarnessDirectory, string.Format(Constants.ChutzpahTemporaryFileFormat, testFilePathHash, "test.html")); temporaryFiles.Add(testHtmlFilePath); string templatePath = fileProbe.GetPathInfo(Path.Combine(Constants.TestFileFolder, definition.TestHarness)).FullPath; string testHtmlTemplate = fileSystem.GetText(templatePath); string amdModulePath = ""; if (chutzpahTestSettings.TestHarnessReferenceMode == TestHarnessReferenceMode.AMD && inputTestFilePath.Contains(testHarnessDirectory)) { amdModulePath = inputTestFilePath .Replace(Path.GetExtension(inputTestFilePath), "") .Replace(testHarnessDirectory, "") .Replace("\\", "/") .Trim('/', '\\'); } var harness = new TestHarness(chutzpahTestSettings, options, referencedFiles, fileSystem, amdModulePath); if (coverageEngine != null) { coverageEngine.PrepareTestHarnessForCoverage(harness, definition); } string testFileContents = fileSystem.GetText(inputTestFilePath); var frameworkReplacements = definition.GetFrameworkReplacements(chutzpahTestSettings, inputTestFilePath, testFileContents) ?? new Dictionary<string, string>(); string testHtmlText = harness.CreateHtmlText(testHtmlTemplate, frameworkReplacements); fileSystem.Save(testHtmlFilePath, testHtmlText); return testHtmlFilePath; }
public TestCaseStreamReaderFactory(ICoverageEngine coverageEngine) { this.coverageEngine = coverageEngine; }