Updated Branches: refs/heads/master ff01970d8 -> 531826a77
[SUREFIRE-915] runOrder=failedfirst runs new tests last Patch by Takeji Naigeon, applied with slight modifications Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/531826a7 Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/531826a7 Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/531826a7 Branch: refs/heads/master Commit: 531826a77fa977e54f8c7e28606cd5609e67868c Parents: ff01970 Author: Kristian Rosenvold <krosenv...@apache.org> Authored: Thu Oct 25 18:05:25 2012 +0200 Committer: Kristian Rosenvold <krosenv...@apache.org> Committed: Thu Oct 25 18:05:25 2012 +0200 ---------------------------------------------------------------------- .../runorder/RunEntryStatisticsMapTest.java | 12 ++++++++---- .../maven/plugin/surefire/runorder/Priority.java | 10 ++++++++-- .../surefire/runorder/RunEntryStatisticsMap.java | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/531826a7/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java index 8224490..9d13c87 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java @@ -50,11 +50,12 @@ public class RunEntryStatisticsMapTest throws IOException { final RunEntryStatisticsMap runEntryStatisticsMap = RunEntryStatisticsMap.fromReader( getStatisticsFile() ); - final List<?> list = Arrays.asList( new Class[]{ A.class, B.class, C.class } ); + final List<?> list = Arrays.asList( A.class, B.class, NewClass.class, C.class ); final List<?> prioritizedTestsClassRunTime = runEntryStatisticsMap.getPrioritizedTestsByFailureFirst( list ); assertEquals( A.class, prioritizedTestsClassRunTime.get( 0 ) ); - assertEquals( C.class, prioritizedTestsClassRunTime.get( 1 ) ); - assertEquals( B.class, prioritizedTestsClassRunTime.get( 2 ) ); + assertEquals( NewClass.class, prioritizedTestsClassRunTime.get( 1 ) ); + assertEquals( C.class, prioritizedTestsClassRunTime.get( 2 ) ); + assertEquals( B.class, prioritizedTestsClassRunTime.get( 3 ) ); } private StringReader getStatisticsFile() @@ -103,5 +104,8 @@ public class RunEntryStatisticsMapTest class C { } - + + class NewClass + { + } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/531826a7/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java index 3264dd1..2295652 100644 --- a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java +++ b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java @@ -37,10 +37,15 @@ public class Priority this.className = className; } - public static Priority lowest( String className ) + /** + * Returns a priority that applies to a new testclass (that has never been run/recorded) + * @param className The class name + * @return A priority + */ + public static Priority newTestClassPriority( String className ) { Priority priority1 = new Priority( className ); - priority1.setPriority( Integer.MAX_VALUE ); + priority1.setPriority( 0 ); priority1.minSuccessRate = 0; return priority1; } @@ -51,6 +56,7 @@ public class Priority minSuccessRate = Math.min( minSuccessRate, itemStat.getSuccessfulBuilds() ); } + public int getTotalRuntime() { return totalRuntime; http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/531826a7/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java index 51bdcd7..cd4e8eb 100644 --- a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java +++ b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java @@ -185,7 +185,7 @@ public class RunEntryStatisticsMap Priority pri = (Priority) classPriorities.get( clazz.getName() ); if ( pri == null ) { - pri = Priority.lowest( clazz.getName() ); + pri = Priority.newTestClassPriority( clazz.getName() ); } PrioritizedTest prioritizedTest = new PrioritizedTest( clazz, pri ); tests.add( prioritizedTest );