public void VerifyInputsForCoberturaAnt(IExecutionContext context) { ClassFilesDirectories = CodeCoverageUtilities.TrimNonEmptyParam(ClassFilesDirectories, "ClassFilesDirectories"); ReportDirectory = CodeCoverageUtilities.TrimNonEmptyParam(ReportDirectory, "ReportDirectory"); CCReportTask = CodeCoverageUtilities.TrimNonEmptyParam(CCReportTask, "CodeCoverageReportTarget"); ReportBuildFile = CodeCoverageUtilities.TrimNonEmptyParam(ReportBuildFile, "CodeCoverageReportBuildFile"); CodeCoverageUtilities.ThrowIfClassFilesDirectoriesIsInvalid(ClassFilesDirectories); SourceDirectories = CodeCoverageUtilities.SetCurrentDirectoryIfDirectoriesParameterIsEmpty(context, SourceDirectories, StringUtil.Loc("SourceDirectoriesNotSpecified")); }
private string GetReportPomXml(XNamespace xNameSpace, XElement pomXml, CodeCoverageEnablerInputs mavenCcParams) { string settings = string.Empty; settings += GetSettingsForPom(xNameSpace, pomXml); var srcDirectories = CodeCoverageUtilities.SetCurrentDirectoryIfDirectoriesParameterIsEmpty(_executionContext, mavenCcParams.SourceDirectories, StringUtil.Loc("SourceDirectoriesNotSpecifiedForMultiModule")); var classFilesDirectories = CodeCoverageUtilities.SetCurrentDirectoryIfDirectoriesParameterIsEmpty(_executionContext, mavenCcParams.ClassFilesDirectories, StringUtil.Loc("ClassDirectoriesNotSpecifiedForMultiModule")); var srcData = CodeCoverageUtilities.GetSourceDataForJacoco(srcDirectories); var classData = CodeCoverageUtilities.GetClassDataForAnt(mavenCcParams.Include, mavenCcParams.Exclude, classFilesDirectories); var execFile = Path.Combine(mavenCcParams.ReportDirectory, _jacocoExecPrefix + ".exec"); var csvFile = Path.Combine(mavenCcParams.ReportDirectory, "report.csv"); var summaryFile = Path.Combine(mavenCcParams.ReportDirectory, mavenCcParams.SummaryFile); // ref https://dzone.com/articles/jacoco-maven-multi-module return (@"<?xml version='1.0' encoding='UTF-8'?>" + Environment.NewLine + @" <project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'>" + Environment.NewLine + settings + @" <build>" + Environment.NewLine + @" <plugins>" + Environment.NewLine + @" <plugin>" + Environment.NewLine + @" <groupId>org.apache.maven.plugins</groupId>" + Environment.NewLine + @" <artifactId>maven-antrun-plugin</artifactId>" + Environment.NewLine + @" <version>" + _mavenAntRunPluginVersion + @"</version>" + Environment.NewLine + @" <executions>" + Environment.NewLine + @" <execution>" + Environment.NewLine + @" <phase>post-integration-test</phase>" + Environment.NewLine + @" <goals>" + Environment.NewLine + @" <goal>run</goal>" + Environment.NewLine + @" </goals>" + Environment.NewLine + @" <configuration>" + Environment.NewLine + @" <target>" + Environment.NewLine + @" <echo message='Generating JaCoCo Reports' />" + Environment.NewLine + @" <taskdef name='report' classname='org.jacoco.ant.ReportTask'>" + Environment.NewLine + @" <classpath path='{basedir}/target/jacoco-jars/org.jacoco.ant.jar' />" + Environment.NewLine + @" </taskdef>" + Environment.NewLine + @" <report>" + Environment.NewLine + @" <executiondata>" + Environment.NewLine + @" <file file='" + execFile + @"' />" + Environment.NewLine + @" </executiondata>" + Environment.NewLine + @" <structure name='Jacoco report'>" + Environment.NewLine + @" <classfiles>" + Environment.NewLine + classData + @" </classfiles>" + Environment.NewLine + @" <sourcefiles encoding = 'UTF-8'>" + Environment.NewLine + srcData + @" </sourcefiles>" + Environment.NewLine + @" </structure>" + Environment.NewLine + @" <html destdir='" + mavenCcParams.ReportDirectory + @"' />" + Environment.NewLine + @" <xml destfile='" + summaryFile + @"' />" + Environment.NewLine + @" <csv destfile='" + csvFile + @"' />" + Environment.NewLine + @" </report>" + Environment.NewLine + @" </target>" + Environment.NewLine + @" </configuration>" + Environment.NewLine + @" </execution>" + Environment.NewLine + @" </executions>" + Environment.NewLine + @" <dependencies>" + Environment.NewLine + @" <dependency>" + Environment.NewLine + @" <groupId>org.jacoco</groupId>" + Environment.NewLine + @" <artifactId>org.jacoco.ant</artifactId>" + Environment.NewLine + @" <version>" + _jacocoVersion + @"</version>" + Environment.NewLine + @" </dependency>" + Environment.NewLine + @" </dependencies>" + Environment.NewLine + @" </plugin>" + Environment.NewLine + @" </plugins>" + Environment.NewLine + @" </build>" + Environment.NewLine + @" </project>"); }