Updated Branches: refs/heads/master 50912ac6f -> c5d936cdc
o Return tests in the same order as they are listed in the XML file (this also fixes CheckTestNgVersionsIT on JDK 1.5) Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/a563e280 Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/a563e280 Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/a563e280 Branch: refs/heads/master Commit: a563e2803e48934bfc3da291a4db44a619347183 Parents: 50912ac Author: Andreas Gudian <[email protected]> Authored: Wed Jul 10 13:59:47 2013 +0200 Committer: Andreas Gudian <[email protected]> Committed: Wed Jul 10 13:59:47 2013 +0200 ---------------------------------------------------------------------- .../surefire/report/SurefireReportParser.java | 9 +++--- .../surefire/report/TestSuiteXmlParser.java | 30 ++++++++++++-------- 2 files changed, 22 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/a563e280/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java ---------------------------------------------------------------------- diff --git a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java index feba245..db6beae 100644 --- a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java +++ b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java @@ -23,18 +23,17 @@ import java.io.File; import java.io.IOException; import java.text.NumberFormat; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; -import org.apache.maven.reporting.MavenReportException; -import org.apache.maven.shared.utils.StringUtils; -import org.apache.maven.shared.utils.io.DirectoryScanner; import javax.xml.parsers.ParserConfigurationException; +import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.shared.utils.StringUtils; +import org.apache.maven.shared.utils.io.DirectoryScanner; import org.xml.sax.SAXException; /** @@ -85,7 +84,7 @@ public class SurefireReportParser TestSuiteXmlParser parser = new TestSuiteXmlParser(); for ( File aXmlReportFileList : xmlReportFileList ) { - Collection<ReportTestSuite> suites; + List<ReportTestSuite> suites; try { http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/a563e280/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java ---------------------------------------------------------------------- diff --git a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java index 3f600b2..e54443d 100644 --- a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java +++ b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java @@ -22,12 +22,10 @@ package org.apache.maven.plugins.surefire.report; import java.io.File; import java.io.FileInputStream; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.text.NumberFormat; import java.text.ParseException; import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -53,7 +51,9 @@ public class TestSuiteXmlParser private ReportTestSuite currentSuite; - private Map<String, ReportTestSuite> classesToSuites; + private Map<String, Integer> classesToSuitesIndex; + + private List<ReportTestSuite> suites; private final NumberFormat numberFormat = NumberFormat.getInstance( Locale.ENGLISH ); @@ -66,7 +66,7 @@ public class TestSuiteXmlParser private boolean valid; - public Collection<ReportTestSuite> parse( String xmlPath ) + public List<ReportTestSuite> parse( String xmlPath ) throws ParserConfigurationException, SAXException, IOException { @@ -87,7 +87,7 @@ public class TestSuiteXmlParser } } - public Collection<ReportTestSuite> parse( InputStreamReader stream ) + public List<ReportTestSuite> parse( InputStreamReader stream ) throws ParserConfigurationException, SAXException, IOException { SAXParserFactory factory = SAXParserFactory.newInstance(); @@ -96,7 +96,8 @@ public class TestSuiteXmlParser valid = true; - classesToSuites = new HashMap<String, ReportTestSuite>(); + classesToSuitesIndex = new HashMap<String, Integer>(); + suites = new ArrayList<ReportTestSuite>(); saxParser.parse( new InputSource( stream ), this ); @@ -104,11 +105,11 @@ public class TestSuiteXmlParser { // omit the defaultSuite if it's empty and there are alternatives if ( defaultSuite.getNumberOfTests() == 0 ) { - classesToSuites.remove( defaultSuite.getFullClassName() ); + suites.remove( classesToSuitesIndex.get( defaultSuite.getFullClassName() ).intValue() ); } } - return classesToSuites.values(); + return suites; } /** @@ -152,7 +153,8 @@ public class TestSuiteXmlParser defaultSuite.setFullClassName( fullClassName ); } - classesToSuites.put( defaultSuite.getFullClassName(), defaultSuite ); + suites.add( defaultSuite ); + classesToSuitesIndex.put( defaultSuite.getFullClassName(), suites.size() - 1 ); } else if ( "testcase".equals( qName ) ) { @@ -167,12 +169,16 @@ public class TestSuiteXmlParser // if the testcase declares its own classname, it may need to belong to its own suite if ( fullClassName != null ) { - currentSuite = classesToSuites.get( fullClassName ); - if ( currentSuite == null ) + Integer currentSuiteIndex = classesToSuitesIndex.get( fullClassName ); + if ( currentSuiteIndex == null ) { currentSuite = new ReportTestSuite(); currentSuite.setFullClassName( fullClassName ); - classesToSuites.put( fullClassName, currentSuite ); + suites.add( currentSuite ); + classesToSuitesIndex.put( fullClassName, suites.size() - 1 ); + } else + { + currentSuite = suites.get( currentSuiteIndex ); } }
