private void handleTestFailures() { String message = "There were failing tests"; DirectoryReport htmlReport = reports.getHtml(); if (htmlReport.isEnabled()) { String reportUrl = new ConsoleRenderer().asClickableFileUrl(htmlReport.getEntryPoint()); message = message.concat(". See the report at: " + reportUrl); } else { DirectoryReport junitXmlReport = reports.getJunitXml(); if (junitXmlReport.isEnabled()) { String resultsUrl = new ConsoleRenderer().asClickableFileUrl(junitXmlReport.getEntryPoint()); message = message.concat(". See the results at: " + resultsUrl); } } if (getIgnoreFailures()) { getLogger().warn(message); } else { throw new GradleException(message); } }
private File getHtmlLinkedFileFromReport(Report report) { if (report instanceof DirectoryReport) { return ((DirectoryReport) report).getEntryPoint(); } else { return report.getDestination(); } }
public void apply(final Project project) { project.getPluginManager().apply(ReportingBasePlugin.class); final GenerateBuildDashboard buildDashboardTask = project.getTasks().create(BUILD_DASHBOARD_TASK_NAME, GenerateBuildDashboard.class); buildDashboardTask.setDescription("Generates a dashboard of all the reports produced by this build."); buildDashboardTask.setGroup("reporting"); DirectoryReport htmlReport = buildDashboardTask.getReports().getHtml(); ConventionMapping htmlReportConventionMapping = new DslObject(htmlReport).getConventionMapping(); htmlReportConventionMapping.map("destination", new Callable<Object>() { public Object call() throws Exception { return project.getExtensions().getByType(ReportingExtension.class).file("buildDashboard"); } }); Action<Task> captureReportingTasks = new Action<Task>() { public void execute(Task task) { if (!(task instanceof Reporting)) { return; } Reporting reporting = (Reporting) task; buildDashboardTask.aggregate(reporting); if (!task.equals(buildDashboardTask)) { task.finalizedBy(buildDashboardTask); } } }; for (Project aProject : project.getAllprojects()) { aProject.getTasks().all(captureReportingTasks); } }
private static void conventionMapOutputDirectory(TestNGOptions options, final DirectoryReport html) { new DslObject(options).getConventionMapping().map("outputDirectory", new Callable<File>() { public File call() { return html.getDestination(); } }); }
public void apply(final ProjectInternal project) { project.getPlugins().apply(ReportingBasePlugin.class); final GenerateBuildDashboard buildDashboardTask = project.getTasks().create(BUILD_DASHBOARD_TASK_NAME, GenerateBuildDashboard.class); buildDashboardTask.setDescription("Generates a dashboard of all the reports produced by this build."); buildDashboardTask.setGroup("reporting"); DirectoryReport htmlReport = buildDashboardTask.getReports().getHtml(); ConventionMapping htmlReportConventionMapping = new DslObject(htmlReport).getConventionMapping(); htmlReportConventionMapping.map("destination", new Callable<Object>() { public Object call() throws Exception { return project.getExtensions().getByType(ReportingExtension.class).file("buildDashboard"); } }); Action<Task> captureReportingTasks = new Action<Task>() { public void execute(Task task) { if (!(task instanceof Reporting)) { return; } Reporting reporting = (Reporting) task; buildDashboardTask.aggregate(reporting); if (!task.equals(buildDashboardTask)) { task.finalizedBy(buildDashboardTask); } } }; for (Project aProject : project.getAllprojects()) { aProject.getTasks().all(captureReportingTasks); } }
private File getHtmlLinkedFileFromReport(Report report) { if(report instanceof DirectoryReport){ return ((DirectoryReport) report).getEntryPoint(); } else{ return report.getDestination(); } }
public void apply(final ProjectInternal project) { project.getPlugins().apply(ReportingBasePlugin.class); final GenerateBuildDashboard buildDashboardTask = project.getTasks().create(BUILD_DASHBOARD_TASK_NAME, GenerateBuildDashboard.class); DirectoryReport htmlReport = buildDashboardTask.getReports().getHtml(); ConventionMapping htmlReportConventionMapping = new DslObject(htmlReport).getConventionMapping(); htmlReportConventionMapping.map("destination", new Callable<Object>() { public Object call() throws Exception { return project.getExtensions().getByType(ReportingExtension.class).file("buildDashboard"); } }); Action<Task> captureReportingTasks = new Action<Task>() { public void execute(Task task) { if (!(task instanceof Reporting)) { return; } Reporting reporting = (Reporting) task; buildDashboardTask.aggregate(reporting); if (!task.equals(buildDashboardTask)) { task.finalizedBy(buildDashboardTask); } } }; for (Project aProject : project.getAllprojects()) { aProject.getTasks().all(captureReportingTasks); } }
public DefaultBuildDashboardReports(Task task) { super(DirectoryReport.class, task); add(TaskGeneratedSingleDirectoryReport.class, "html", task, "index.html"); }
public DirectoryReport getHtml() { return (DirectoryReport)getByName("html"); }
@Override public DirectoryReport getHtml() { return (DirectoryReport) getByName("html"); }
public DirectoryReport getHtml() { return (DirectoryReport) getByName("html"); }
@TaskAction public void executeTests() { LogLevel currentLevel = getCurrentLogLevel(); TestLogging levelLogging = testLogging.get(currentLevel); TestExceptionFormatter exceptionFormatter = getExceptionFormatter(levelLogging); TestEventLogger eventLogger = new TestEventLogger(getTextOutputFactory(), currentLevel, levelLogging, exceptionFormatter); addTestListener(eventLogger); addTestOutputListener(eventLogger); if (!getFilter().getIncludePatterns().isEmpty()) { addTestListener(new NoMatchingTestsReporter("No tests found for given includes: " + getFilter().getIncludePatterns())); } File binaryResultsDir = getBinResultsDir(); getProject().delete(binaryResultsDir); getProject().mkdir(binaryResultsDir); Map<String, TestClassResult> results = new HashMap<String, TestClassResult>(); TestOutputStore testOutputStore = new TestOutputStore(binaryResultsDir); TestOutputStore.Writer outputWriter = testOutputStore.writer(); TestReportDataCollector testReportDataCollector = new TestReportDataCollector(results, outputWriter); addTestListener(testReportDataCollector); addTestOutputListener(testReportDataCollector); TestCountLogger testCountLogger = new TestCountLogger(getProgressLoggerFactory()); addTestListener(testCountLogger); TestResultProcessor resultProcessor = new TestListenerAdapter( getTestListenerBroadcaster().getSource(), testOutputListenerBroadcaster.getSource()); if (testExecuter == null) { testExecuter = new DefaultTestExecuter(getProcessBuilderFactory(), getActorFactory()); } try { testExecuter.execute(this, resultProcessor); } finally { testExecuter = null; testListenerBroadcaster.removeAll(); testOutputListenerBroadcaster.removeAll(); outputWriter.close(); } new TestResultSerializer(binaryResultsDir).write(results.values()); TestResultsProvider testResultsProvider = new InMemoryTestResultsProvider(results.values(), testOutputStore.reader()); try { if (testReporter == null) { testReporter = new DefaultTestReport(); } JUnitXmlReport junitXml = reports.getJunitXml(); if (junitXml.isEnabled()) { TestOutputAssociation outputAssociation = junitXml.isOutputPerTestCase() ? TestOutputAssociation.WITH_TESTCASE : TestOutputAssociation.WITH_SUITE; Binary2JUnitXmlReportGenerator binary2JUnitXmlReportGenerator = new Binary2JUnitXmlReportGenerator(junitXml.getDestination(), testResultsProvider, outputAssociation); binary2JUnitXmlReportGenerator.generate(); } DirectoryReport html = reports.getHtml(); if (!html.isEnabled()) { getLogger().info("Test report disabled, omitting generation of the HTML test report."); } else { testReporter.generateReport(testResultsProvider, html.getDestination()); } } finally { CompositeStoppable.stoppable(testResultsProvider).stop(); testReporter = null; testFramework = null; } if (testCountLogger.hadFailures()) { handleTestFailures(); } }
@TaskAction public void executeTests() { LogLevel currentLevel = getCurrentLogLevel(); TestLogging levelLogging = testLogging.get(currentLevel); TestExceptionFormatter exceptionFormatter = getExceptionFormatter(levelLogging); TestEventLogger eventLogger = new TestEventLogger(textOutputFactory, currentLevel, levelLogging, exceptionFormatter); addTestListener(eventLogger); addTestOutputListener(eventLogger); if (!getFilter().getIncludePatterns().isEmpty()) { addTestListener(new NoMatchingTestsReporter("No tests found for given includes: " + getFilter().getIncludePatterns())); } File binaryResultsDir = getBinResultsDir(); getProject().delete(binaryResultsDir); getProject().mkdir(binaryResultsDir); Map<String, TestClassResult> results = new HashMap<String, TestClassResult>(); TestOutputStore testOutputStore = new TestOutputStore(binaryResultsDir); TestOutputStore.Writer outputWriter = testOutputStore.writer(); TestReportDataCollector testReportDataCollector = new TestReportDataCollector(results, outputWriter); addTestListener(testReportDataCollector); addTestOutputListener(testReportDataCollector); TestCountLogger testCountLogger = new TestCountLogger(progressLoggerFactory); addTestListener(testCountLogger); TestResultProcessor resultProcessor = new TestListenerAdapter( getTestListenerBroadcaster().getSource(), testOutputListenerBroadcaster.getSource()); try { testExecuter.execute(this, resultProcessor); } finally { testListenerBroadcaster.removeAll(); testOutputListenerBroadcaster.removeAll(); outputWriter.close(); } new TestResultSerializer(binaryResultsDir).write(results.values()); TestResultsProvider testResultsProvider = new InMemoryTestResultsProvider(results.values(), testOutputStore.reader()); try { JUnitXmlReport junitXml = reports.getJunitXml(); if (junitXml.isEnabled()) { TestOutputAssociation outputAssociation = junitXml.isOutputPerTestCase() ? TestOutputAssociation.WITH_TESTCASE : TestOutputAssociation.WITH_SUITE; Binary2JUnitXmlReportGenerator binary2JUnitXmlReportGenerator = new Binary2JUnitXmlReportGenerator(junitXml.getDestination(), testResultsProvider, outputAssociation); binary2JUnitXmlReportGenerator.generate(); } DirectoryReport html = reports.getHtml(); if (!html.isEnabled()) { getLogger().info("Test report disabled, omitting generation of the HTML test report."); } else { testReporter.generateReport(testResultsProvider, html.getDestination()); } } finally { CompositeStoppable.stoppable(testResultsProvider).stop(); } testFramework = null; if (testCountLogger.hadFailures()) { handleTestFailures(); } }
/** * The JaCoCo HTML report * * @return The JaCoCo HTML report */ @Internal DirectoryReport getHtml();
/** * The dependency HTML report * * @return The dependency HTML report */ @Internal DirectoryReport getHtml();
/** * A HTML report indicate the results of the test execution. * * @return The HTML report */ @Nested DirectoryReport getHtml();
/** * The dependency HTML report * * @return The dependency HTML report */ DirectoryReport getHtml();
/** * A HTML report indicate the results of the test execution. * * @return The HTML report */ DirectoryReport getHtml();