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);
        }
Exemple #2
0
 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;
 }
Exemple #4
0
 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;
 }
 public TestCaseStreamReader(ICoverageEngine coverageEngine)
 {
     jsonSerializer = new JsonSerializer();
     this.coverageEngine = coverageEngine;
 }
 public TestCaseStreamReaderFactory(ICoverageEngine coverageEngine)
 {
     this.coverageEngine = coverageEngine;
 }