separate test target identification from test target execution (prepare further refactoring to extract part reusable in junit adapter)

git-svn-id: https://svn.apache.org/repos/asf/ant/antlibs/antunit/trunk@736745 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/org/apache/ant/antunit/AntUnit.java b/src/main/org/apache/ant/antunit/AntUnit.java
index ad94e4f..beb4838 100644
--- a/src/main/org/apache/ant/antunit/AntUnit.java
+++ b/src/main/org/apache/ant/antunit/AntUnit.java
@@ -24,6 +24,8 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 
@@ -238,6 +240,14 @@
         boolean tearDown = targets.containsKey(TEARDOWN);
         boolean suiteSetUp = targets.containsKey(SUITESETUP);
         boolean suiteTearDown = targets.containsKey(SUITETEARDOWN);
+        List testTargets = new LinkedList();
+        Iterator it = targets.keySet().iterator();
+        while (it.hasNext()) {
+            String name = (String) it.next();
+            if (name.startsWith(TEST) && !name.equals(TEST)) {
+                testTargets.add(name);
+            }
+        }
 
         // start test
         newProject.fireBuildStarted();
@@ -260,10 +270,9 @@
                     return;
                 }
             }
-            Iterator iter = targets.keySet().iterator();
+            Iterator iter = testTargets.iterator();
             while (iter.hasNext()) {
                 String name = (String) iter.next();
-                if (name.startsWith(TEST) && !name.equals(TEST)) {
                     Vector v = new Vector();
                     if (setUp) {
                         v.add(SETUP);
@@ -299,7 +308,6 @@
                             newProject = createProjectForFile(f);
                         }
                     }
-                }
             }
         } catch (Throwable e) {
             caught = e;