From 383338f8ff77453f55e4fcc692d40ff46dcf7b71 Mon Sep 17 00:00:00 2001 From: zq_he <1638050049@qq.com> Date: Tue, 14 Mar 2023 17:41:05 +0800 Subject: [PATCH] =?UTF-8?q?ant=E6=94=AF=E6=8C=81=E5=B7=AE=E9=87=8F?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/org/jacoco/ant/ReportTask.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/org.jacoco.ant/src/org/jacoco/ant/ReportTask.java b/org.jacoco.ant/src/org/jacoco/ant/ReportTask.java index 1416a5e1..07a4ff68 100644 --- a/org.jacoco.ant/src/org/jacoco/ant/ReportTask.java +++ b/org.jacoco.ant/src/org/jacoco/ant/ReportTask.java @@ -53,6 +53,7 @@ import org.jacoco.report.check.RulesChecker; import org.jacoco.report.csv.CSVFormatter; import org.jacoco.report.html.HTMLFormatter; import org.jacoco.report.xml.XMLFormatter; +import org.jacoco.core.internal.diff.JsonReadUtil; /** * Task for coverage report generation. @@ -108,6 +109,12 @@ public class ReportTask extends Task { private String name; + private String difffile; + + public void setDifffile(final String difffile) { + this.difffile = difffile; + } + /** * Sets the name of the group. * @@ -535,14 +542,21 @@ public class ReportTask extends Task { return new MultiReportVisitor(visitors); } + // 存放差量文件 + private String diffFileString = ""; + private void createReport(final IReportGroupVisitor visitor, final GroupElement group) throws IOException { if (group.name == null) { throw new BuildException("Group name must be supplied", getLocation()); } + if (null != group.difffile) { + diffFileString = group.difffile; + log("差量文件:" + JsonReadUtil.readJsonToString(group.difffile)); + } if (group.children.isEmpty()) { - final IBundleCoverage bundle = createBundle(group); + final IBundleCoverage bundle = createBundle(group, diffFileString); final SourceFilesElement sourcefiles = group.sourcefiles; final AntResourcesLocator locator = new AntResourcesLocator( sourcefiles.encoding, sourcefiles.tabWidth); @@ -560,9 +574,16 @@ public class ReportTask extends Task { } } - private IBundleCoverage createBundle(final GroupElement group) + private IBundleCoverage createBundle(final GroupElement group, + String diffFileString) throws IOException { - final CoverageBuilder builder = new CoverageBuilder(); + final CoverageBuilder builder; + if (null != diffFileString && !"".equals(diffFileString)) { + builder = new CoverageBuilder( + JsonReadUtil.readJsonToString(diffFileString)); + } else { + builder = new CoverageBuilder(); + } final Analyzer analyzer = new Analyzer(executionDataStore, builder); for (final Iterator i = group.classfiles.iterator(); i.hasNext();) { final Resource resource = (Resource) i.next(); -- Gitee