/** * {@inheritDoc} */ @Override public String toString() { return fullClassName + " [" + getNumberOfTests() + "/" + getNumberOfFailures() + "/" + getNumberOfErrors() + "/" + getNumberOfSkipped() + "]"; } }
public List<ReportTestCase> getFailureDetails( List<ReportTestSuite> testSuites ) { List<ReportTestCase> failureDetails = new ArrayList<ReportTestCase>(); for ( ReportTestSuite suite : testSuites ) { for ( ReportTestCase tCase : suite.getTestCases() ) { if ( !tCase.isSuccessful() ) { failureDetails.add( tCase ); } } } return failureDetails; }
public List<ReportTestSuite> parse( InputStreamReader stream ) throws ParserConfigurationException, SAXException, IOException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); valid = true; classesToSuitesIndex = new HashMap<String, Integer>(); suites = new ArrayList<ReportTestSuite>(); saxParser.parse( new InputSource( stream ), this ); if ( currentSuite != defaultSuite ) { // omit the defaultSuite if it's empty and there are alternatives if ( defaultSuite.getNumberOfTests() == 0 ) { suites.remove( classesToSuitesIndex.get( defaultSuite.getFullClassName() ).intValue() ); } } return suites; }
sink.link( "#" + suite.getPackageName() + '.' + suite.getName() ); if ( suite.getNumberOfErrors() > 0 ) else if ( suite.getNumberOfFailures() > 0 ) else if ( suite.getNumberOfSkipped() > 0 ) sinkCellLink( sink, suite.getName(), "#" + suite.getPackageName() + '.' + suite.getName() ); sinkCell( sink, Integer.toString( suite.getNumberOfTests() ) ); sinkCell( sink, Integer.toString( suite.getNumberOfErrors() ) ); sinkCell( sink, Integer.toString( suite.getNumberOfFailures() ) ); sinkCell( sink, Integer.toString( suite.getNumberOfSkipped() ) ); String percentage = report.computePercentage( suite.getNumberOfTests(), suite.getNumberOfErrors(), suite.getNumberOfFailures(), suite.getNumberOfSkipped() ); sinkCell( sink, percentage + "%" ); sinkCell( sink, numberFormat.format( suite.getTimeElapsed() ) );
List<ReportTestSuite> testSuites = parser.parseXMLReportFiles(); for (ReportTestSuite testSuite : testSuites) { this.nbTotalTests += testSuite.getNumberOfTests(); int runningTests = testSuite.getNumberOfTests() - testSuite.getNumberOfSkipped(); this.nbRunningTests += runningTests; this.nbPassingTests += runningTests - testSuite.getNumberOfFailures() - testSuite.getNumberOfErrors(); this.nbFailingTests += testSuite.getNumberOfFailures(); this.nbErroringTests += testSuite.getNumberOfErrors(); this.nbSkippingTests += testSuite.getNumberOfSkipped(); if (testSuite.getNumberOfFailures() > 0 || testSuite.getNumberOfErrors() > 0) { File failingModule = surefireDir.getParentFile().getParentFile(); this.failingModulePath = failingModule.getCanonicalPath(); FailingClass failingClass = properties.getTests().addFailingClass(testSuite.getFullClassName()); failingClass.setNumberRunning(testSuite.getNumberOfTests() - testSuite.getNumberOfSkipped()); failingClass.setNumberPassing(testSuite.getNumberOfTests() - testSuite.getNumberOfSkipped() - testSuite.getNumberOfFailures() - testSuite.getNumberOfErrors()); failingClass.setNumberFailing(testSuite.getNumberOfFailures()); failingClass.setNumberErroring(testSuite.getNumberOfErrors()); failingClass.setNumberSkipping(testSuite.getNumberOfSkipped()); for (ReportTestCase testCase : testSuite.getTestCases()) { if (testCase.hasFailure() || testCase.hasError()) {
.append("s)<br/><ul>"); for (ReportTestSuite suite : suites) { if (suite.getNumberOfErrors() > 0 || suite.getNumberOfFailures() > 0) { for (ReportTestCase tc : suite.getTestCases()) { if (tc.getFailure() != null && !"skipped".equalsIgnoreCase((String) tc.getFailure().get("message"))) {
defaultSuite = new ReportTestSuite(); currentSuite = defaultSuite; defaultSuite.setTimeElapsed( time.floatValue() ); defaultSuite.setFullClassName( StringUtils.isBlank( group ) classesToSuitesIndex.put( defaultSuite.getFullClassName(), suites.size() - 1 ); currentSuite = new ReportTestSuite() .setFullClassName( fullClassName ); suites.add( currentSuite ); classesToSuitesIndex.put( fullClassName, suites.size() - 1 ); testCase.setFullClassName( currentSuite.getFullClassName() ) .setClassName( currentSuite.getName() ) .setFullName( currentSuite.getFullClassName() + "." + testCase.getName() ) .setTime( time.floatValue() ); currentSuite.setTimeElapsed( testCase.getTime() + currentSuite.getTimeElapsed() ); currentSuite.incrementNumberOfFailures(); currentSuite.incrementNumberOfErrors(); currentSuite.incrementNumberOfSkipped(); currentSuite.incrementNumberOfFlakes();
public List<String> getFailingTests() { List<String> result = new ArrayList<>(); for (MavenProject mavenProject : reactorProjects) { File surefireReportsDirectory = getSurefireReportsDirectory(mavenProject); SurefireReportParser parser = new SurefireReportParser(Collections.singletonList(surefireReportsDirectory), Locale.ENGLISH, new NullConsoleLogger()); try { List<ReportTestSuite> testSuites = parser.parseXMLReportFiles(); for (ReportTestSuite reportTestSuite : testSuites) { if (reportTestSuite.getNumberOfErrors()+reportTestSuite.getNumberOfFailures() > 0) { result.add(reportTestSuite.getFullClassName()); } } } catch (MavenReportException e) { e.printStackTrace();; } } return result; }
if ( showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0 ) if ( showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0 )
List<ReportTestCase> testCases = suite.getTestCases(); sink.text( suite.getName() ); sink.sectionTitle2_(); sinkAnchor( sink, suite.getPackageName() + '.' + suite.getName() );
/** * {@inheritDoc} */ @Override public void endElement( String uri, String localName, String qName ) throws SAXException { // todo: use jdk7 switch-case if ( "testcase".equals( qName ) ) { currentSuite.getTestCases().add( testCase ); } else if ( "failure".equals( qName ) || "error".equals( qName ) ) { testCase.setFailureDetail( currentElement.toString() ) .setFailureErrorLine( parseErrorLine( currentElement, testCase.getFullClassName() ) ); } else if ( "time".equals( qName ) ) { try { defaultSuite.setTimeElapsed( numberFormat.parse( currentElement.toString() ).floatValue() ); } catch ( ParseException e ) { throw new SAXException( e.getMessage(), e ); } } // TODO extract real skipped reasons }
public Map<String, List<ReportTestSuite>> getSuitesGroupByPackage( List<ReportTestSuite> testSuitesList ) { Map<String, List<ReportTestSuite>> suitePackage = new HashMap<>(); for ( ReportTestSuite suite : testSuitesList ) { List<ReportTestSuite> suiteList = new ArrayList<>(); if ( suitePackage.get( suite.getPackageName() ) != null ) { suiteList = suitePackage.get( suite.getPackageName() ); } suiteList.add( suite ); suitePackage.put( suite.getPackageName(), suiteList ); } return suitePackage; }
sink.link( "#" + suite.getPackageName() + '.' + suite.getName() ); if ( suite.getNumberOfErrors() > 0 ) else if ( suite.getNumberOfFailures() > 0 ) else if ( suite.getNumberOfSkipped() > 0 ) sinkCellLink( sink, suite.getName(), "#" + suite.getPackageName() + '.' + suite.getName() ); sinkCell( sink, Integer.toString( suite.getNumberOfTests() ) ); sinkCell( sink, Integer.toString( suite.getNumberOfErrors() ) ); sinkCell( sink, Integer.toString( suite.getNumberOfFailures() ) ); sinkCell( sink, Integer.toString( suite.getNumberOfSkipped() ) ); String percentage = report.computePercentage( suite.getNumberOfTests(), suite.getNumberOfErrors(), suite.getNumberOfFailures(), suite.getNumberOfSkipped() ); sinkCell( sink, percentage + "%" ); sinkCell( sink, numberFormat.format( suite.getTimeElapsed() ) );
defaultSuite = new ReportTestSuite(); currentSuite = defaultSuite; defaultSuite.setTimeElapsed( time.floatValue() ); defaultSuite.setFullClassName( StringUtils.isBlank( group ) classesToSuitesIndex.put( defaultSuite.getFullClassName(), suites.size() - 1 ); break; case "testcase": currentSuite = new ReportTestSuite() .setFullClassName( fullClassName ); suites.add( currentSuite ); classesToSuitesIndex.put( fullClassName, suites.size() - 1 ); testCase.setFullClassName( currentSuite.getFullClassName() ) .setClassName( currentSuite.getName() ) .setFullName( currentSuite.getFullClassName() + "." + testCase.getName() ) .setTime( time.floatValue() ); currentSuite.setTimeElapsed( testCase.getTime() + currentSuite.getTimeElapsed() ); currentSuite.incrementNumberOfFailures(); break; case "error": testCase.setError( attributes.getValue( "message" ), attributes.getValue( "type" ) ); currentSuite.incrementNumberOfErrors(); break;
if ( showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0 ) if ( showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0 )
List<ReportTestCase> testCases = suite.getTestCases(); sink.text( suite.getName() ); sink.sectionTitle2_(); sinkAnchor( sink, suite.getPackageName() + '.' + suite.getName() );
currentSuite.getTestCases().add( testCase ); break; case "failure": try defaultSuite.setTimeElapsed( numberFormat.parse( currentElement.toString() ).floatValue() );
public Map<String, List<ReportTestSuite>> getSuitesGroupByPackage( List<ReportTestSuite> testSuitesList ) { Map<String, List<ReportTestSuite>> suitePackage = new HashMap<String, List<ReportTestSuite>>(); for ( ReportTestSuite suite : testSuitesList ) { List<ReportTestSuite> suiteList = new ArrayList<ReportTestSuite>(); if ( suitePackage.get( suite.getPackageName() ) != null ) { suiteList = suitePackage.get( suite.getPackageName() ); } suiteList.add( suite ); suitePackage.put( suite.getPackageName(), suiteList ); } return suitePackage; }
/** * {@inheritDoc} */ @Override public String toString() { return fullClassName + " [" + getNumberOfTests() + "/" + getNumberOfFailures() + "/" + getNumberOfErrors() + "/" + getNumberOfSkipped() + "]"; } }
public List<ReportTestCase> getFailureDetails( List<ReportTestSuite> testSuites ) { List<ReportTestCase> failureDetails = new ArrayList<>(); for ( ReportTestSuite suite : testSuites ) { for ( ReportTestCase tCase : suite.getTestCases() ) { if ( !tCase.isSuccessful() ) { failureDetails.add( tCase ); } } } return failureDetails; }