public void VerifyBuildFileOutsideSourcesShouldNotBeModified() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var buildFile2 = Path.Combine(Path.GetTempPath(), "build2.xml"); File.WriteAllText(buildFile2, CodeCoverageTestConstants.BuildXml); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs)); VerifyJacocoCoverageForAnt(numberOfTestNodes: 1, buildFilePath: _sampleBuildFilePath); VerifyJacocoCoverageForAnt(numberOfTestNodes: 1, buildFilePath: buildFile2, jacocoEnabled: false); }
public void EnableCodeCoverageForJacocoWithBuildFileNotInRepository() { var sourceDirectory = Path.Combine(Path.GetTempPath(), "sourceDirectory2"); Directory.CreateDirectory(sourceDirectory); SetupMocks(sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs)); VerifyJacocoCoverageForAnt(numberOfTestNodes: 1, buildFilePath: _sampleBuildFilePath); VerifyJacocoReportForAnt(); Directory.Delete(sourceDirectory, true); Assert.Equal(_warnings.Count, 0); Assert.Equal(_errors.Count, 0); }
public void MoreThanOneBuildFilesWithAnInvalidXmlDoesnotThrow() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var invalidXml = Path.Combine(_sourceDirectory, "invalid.xml"); File.WriteAllText(invalidXml, "invalidXmlData"); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs)); VerifyJacocoCoverageForAnt(numberOfTestNodes: 1, buildFilePath: Path.Combine(_sourceDirectory, "build.xml")); VerifyJacocoReportForAnt(); Assert.Equal(_warnings.Count, 0); Assert.Equal(_errors.Count, 0); }
public void EnableCodeCoverageForAntDoesNotThrowWithNoTests() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildWithNoTestsXml); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); try { enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs)); } catch (Exception ex) { Assert.True(false, "Expected no exception. But got " + ex.GetType()); } Assert.Equal(_warnings.Count, 0); Assert.Equal(_errors.Count, 0); }
public void EnableCodeCoverageForAntThrowsExceptionWithNoReportTask() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); Assert.Throws <ArgumentException>(() => enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs))); }
public void EnableJacocoCodeCoverageForAntIfSourceDirectoryIsNotAvailable() { LoadBuildFile(CodeCoverageTestConstants.BuildXml); SetupMocks(""); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); Assert.Throws <InvalidOperationException>(() => enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs))); }
public void MoreThanOneBuildFilesWithAnInvalidMainBuildXmlThrowsException() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var invalidXml = Path.Combine(_sourceDirectory, "invalid.xml"); File.WriteAllText(invalidXml, "invalidXmlData"); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", invalidXml); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", _classFilter); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); Assert.Throws <XmlException>(() => enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs))); }
public void EnableCodeCoverageForJacocoTestWithNo_includeExcludeFilters() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs)); VerifyJacocoCoverageForAnt(numberOfTestNodes: 1, buildFilePath: _sampleBuildFilePath, includes: string.Empty, excludes: string.Empty); VerifyJacocoReportForAnt(string.Empty, string.Empty); Assert.Equal(_warnings.Count, 0); Assert.Equal(_errors.Count, 0); }
public void EnableCodeCoverageForJacocoTestWithFullClassNameFilters() { SetupMocks(_sourceDirectory); LoadBuildFile(CodeCoverageTestConstants.BuildXml); var enableCodeCoverage = new CodeCoverageEnablerForJacocoAnt(); enableCodeCoverage.Initialize(_hc); var ccInputs = new Dictionary <string, string>(); ccInputs.Add("buildfile", _sampleBuildFilePath); ccInputs.Add("classfilesdirectories", _classDirectories); ccInputs.Add("classfilter", "+:app.com.SampleTest,+:app.*.UtilTest,+:app2*,-:app.com.SampleTest,-:app.*.UtilTest,-:app3*"); ccInputs.Add("sourcedirectories", _srcDirectory); ccInputs.Add("summaryfile", _summaryFile); ccInputs.Add("reportdirectory", _reportDirectory); ccInputs.Add("ccreporttask", _cCReportTask); ccInputs.Add("reportbuildfile", _sampleReportBuildFilePath); enableCodeCoverage.EnableCodeCoverage(_ec.Object, new CodeCoverageEnablerInputs(_ec.Object, "Ant", ccInputs)); VerifyJacocoCoverageForAnt(numberOfTestNodes: 1, buildFilePath: _sampleBuildFilePath, includes: "app.com.SampleTest:app.*.UtilTest:app2*", excludes: "app.com.SampleTest:app.*.UtilTest:app3*"); VerifyJacocoReportForAnt("**/app/com/SampleTest.class,**/app/*/UtilTest.class,**/app2*/**", "**/app/com/SampleTest.class,**/app/*/UtilTest.class,**/app3*/**"); Assert.Equal(_warnings.Count, 0); Assert.Equal(_errors.Count, 0); }