All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.bedrock.junit.JUnitXmlReporter Maven / Gradle / Ivy

/*
 * File: JUnitXmlReporter.java
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * The contents of this file are subject to the terms and conditions of 
 * the Common Development and Distribution License 1.0 (the "License").
 *
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the License by consulting the LICENSE.txt file
 * distributed with this file, or by consulting https://oss.oracle.com/licenses/CDDL
 *
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file LICENSE.txt.
 *
 * MODIFICATIONS:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 */

package com.oracle.bedrock.junit;

import com.oracle.bedrock.Option;

import java.io.File;
import java.io.PrintStream;
import java.util.Properties;
import java.util.Queue;
import java.util.TreeSet;

/**
 * An implementation of a {@link JUnitReporter} that produces an XML based report
 * in the same format as that produced by the Maven Surefire plugin.
 * 

* Copyright (c) 2016. All Rights Reserved. Oracle Corporation.
* Oracle is a registered trademark of Oracle Corporation and/or its affiliates. * * @author Jonathan Knight */ public class JUnitXmlReporter extends JUnitReporter { /** * Constructs a {@link JUnitXmlReporter}. */ public JUnitXmlReporter() { super(null); } /** * Constructs a {@link JUnitXmlReporter}. * * @param reportFolder the report folder */ public JUnitXmlReporter(File reportFolder) { super(reportFolder); } @Override public void writeReport(PrintStream out, TestResults test) { Queue results = test.getEvents(); out.println(""); out.printf("\n", test.getClassName(), test.getTestTime(), results.size(), test.getErrorCount(), test.getSkipCount(), test.getFailureCount()); Properties properties = getTestProperties(); if (properties != null) { out.println(" "); for (String name : new TreeSet<>(properties.stringPropertyNames())) { out.printf(" \n", name, properties.getProperty(name)); } out.println(" "); } for (Event result : results) { float testTime = ((float) result.getTime()) / 1000.0f; out.printf(" \n "); } else { out.printf(">\n \n", message); } out.println(" "); } else if (result.isFailure() || result.isError()) { String exception = result.getException(); String message = result.getMessage(); out.printf(">\n "); } else { out.println("/>"); } out.println(" "); } else { out.println("/>"); } } out.println(""); } public String getReportFileName(Class testClass) { return getReportFileName(testClass.getCanonicalName()); } public String getReportFileName(String className) { return "TEST-" + className + ".xml"; } public static Option at(File folder) { if (folder.exists() &&!folder.isDirectory()) { throw new IllegalStateException("Report folder exists but is not a directory " + folder); } return new JUnitXmlReporter(folder).asOption(); } public static Option toConsole() { return new JUnitXmlReporter().asOption(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy