1.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/RegexpUtils.java Tue Dec 13 14:10:47 2011 +0100
1.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/RegexpUtils.java Wed Dec 21 12:03:19 2011 +0100
1.3 @@ -68,7 +68,7 @@
1.4 = JAVA_ID_REGEX + "(?:\\." + JAVA_ID_REGEX + ")*"; //NOI18N
1.5
1.6 static final String RUNNING_SUITE_REGEX = "[^\"]*\"([^\"]+)\" [a-z]+ \"(\\d+)\"[^:]*: ([^\\)]*)\\)";
1.7 - static final String TEST_REGEX = "[^\"]*\"([^\"]+)\" - ([^\\(]+)\\(([^\\)]*)\\)([^:]+: (.*)\\))?( finished in (\\d+) ms)?";
1.8 + static final String TEST_REGEX = "[^\"]*\"([^\"]+)\" - ([^\\(]+)(\\(([^\\)]*)\\)([^:]+: (.*)\\))?( finished in (\\d+) ms)?)?";
1.9 static final String STATS_REGEX = "\\D+(\\d+)\\D+(\\d+)(\\D+(\\d+))?";
1.10
1.11 /** */
2.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGOutputReader.java Tue Dec 13 14:10:47 2011 +0100
2.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGOutputReader.java Wed Dec 21 12:03:19 2011 +0100
2.3 @@ -168,6 +168,7 @@
2.4 // displayOutput(msg, event.getLogLevel() == AntEvent.LOG_WARN);
2.5 }
2.6 private boolean suiteSummary = false;
2.7 + private long elapsedTime = 0;
2.8
2.9 private class SuiteStats {
2.10
2.11 @@ -233,7 +234,7 @@
2.12 if (getMessage(msg).startsWith("INVOKING: ")) {
2.13 Matcher m = Pattern.compile(RegexpUtils.TEST_REGEX).matcher(msg);
2.14 if (m.matches()) {
2.15 - testStarted(m.group(1), m.group(2), m.group(3), m.group(5));
2.16 + testStarted(m.group(1), m.group(2), m.group(4), m.group(6));
2.17 } else {
2.18 assert false : "Cannot match: '" + msg + "'.";
2.19 }
2.20 @@ -243,7 +244,7 @@
2.21 Matcher m = Pattern.compile(RegexpUtils.TEST_REGEX).matcher(msg);
2.22 if (getMessage(msg).startsWith("PASSED: ")) {
2.23 if (m.matches()) {
2.24 - testFinished("PASSED", m.group(1), m.group(2), m.group(3), m.group(5), m.group(7));
2.25 + testFinished("PASSED", m.group(1), m.group(2), m.group(4), m.group(6), m.group(8));
2.26 } else {
2.27 assert false : "Cannot match: '" + msg + "'.";
2.28 }
2.29 @@ -255,7 +256,7 @@
2.30
2.31 if (getMessage(msg).startsWith("SKIPPED: ")) {
2.32 if (m.matches()) {
2.33 - testFinished("SKIPPED", m.group(1), m.group(2), m.group(3), m.group(5), m.group(7));
2.34 + testFinished("SKIPPED", m.group(1), m.group(2), m.group(4), m.group(6), m.group(8));
2.35 } else {
2.36 assert false : "Cannot match: '" + msg + "'.";
2.37 }
2.38 @@ -264,7 +265,7 @@
2.39
2.40 if (getMessage(msg).startsWith("FAILED: ")) {
2.41 if (m.matches()) {
2.42 - testFinished("FAILED", m.group(1), m.group(2), m.group(3), m.group(5), m.group(7));
2.43 + testFinished("FAILED", m.group(1), m.group(2), m.group(4), m.group(6), m.group(8));
2.44 } else {
2.45 assert false : "Cannot match: '" + msg + "'.";
2.46 }
2.47 @@ -610,13 +611,17 @@
2.48 private void suiteFinished(SuiteStats stats) {
2.49 testSession.setCurrentSuite(stats.name);
2.50 TestNGTestSuite s = (TestNGTestSuite) testSession.getCurrentSuite();
2.51 + s.setElapsedTime(elapsedTime);
2.52 s.finish(stats.testRun, stats.testFail, stats.testSkip, stats.confFail, stats.confSkip);
2.53 - manager.displayReport(testSession, reports.get(stats.name), true);
2.54 + Report r = reports.get(stats.name);
2.55 + r.setElapsedTimeMillis(elapsedTime);
2.56 + manager.displayReport(testSession, r, true);
2.57 + elapsedTime = 0;
2.58 }
2.59
2.60 private void testStarted(String suiteName, String testCase, String parameters, String values) {
2.61 testSession.setCurrentSuite(suiteName);
2.62 - TestNGTestcase tc = ((TestNGTestSuite) ((TestNGTestSession) testSession).getCurrentSuite()).getTestCase(testCase, parameters);
2.63 + TestNGTestcase tc = ((TestNGTestSuite) ((TestNGTestSession) testSession).getCurrentSuite()).getTestCase(testCase, values);
2.64 if (tc == null) {
2.65 tc = new TestNGTestcase(testCase, parameters, values, testSession);
2.66 testSession.addTestCase(tc);
2.67 @@ -632,7 +637,7 @@
2.68
2.69 private void testFinished(String st, String suiteName, String testCase, String parameters, String values, String duration) {
2.70 testSession.setCurrentSuite(suiteName);
2.71 - TestNGTestcase tc = ((TestNGTestSuite) ((TestNGTestSession) testSession).getCurrentSuite()).getTestCase(testCase, parameters);
2.72 + TestNGTestcase tc = ((TestNGTestSuite) ((TestNGTestSession) testSession).getCurrentSuite()).getTestCase(testCase, values);
2.73 if (tc == null) {
2.74 //TestNG does not log invoke message for junit tests...
2.75 tc = new TestNGTestcase(testCase, parameters, values, testSession);
2.76 @@ -651,6 +656,8 @@
2.77 if (duration != null) {
2.78 dur = Long.valueOf(duration);
2.79 }
2.80 + tc.setTimeMillis(dur);
2.81 + elapsedTime += dur;
2.82 Report r = reports.get(suiteName);
2.83 r.update(testSession.getReport(dur));
2.84 manager.displayReport(testSession, r, false);
3.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestSuite.java Tue Dec 13 14:10:47 2011 +0100
3.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestSuite.java Wed Dec 21 12:03:19 2011 +0100
3.3 @@ -96,7 +96,7 @@
3.4
3.5 public TestNGTestcase getTestCase(String testCase, String parameters) {
3.6 for (Testcase tc: getTestcases()) {
3.7 - if (tc.getName().equals(testCase) && ((TestNGTestcase) tc).getParameters().equals(parameters)) {
3.8 + if (tc.getName().equals(parameters != null ? testCase + "(" + parameters + ")" : testCase)) {
3.9 return (TestNGTestcase) tc;
3.10 }
3.11 }
4.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestcase.java Tue Dec 13 14:10:47 2011 +0100
4.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestcase.java Wed Dec 21 12:03:19 2011 +0100
4.3 @@ -57,10 +57,11 @@
4.4 private String parameters;
4.5 private List<String> values = new ArrayList<String>();
4.6
4.7 -
4.8 + //TODO: there should be subnode for each value instead
4.9 public TestNGTestcase(String name, String params, String values, TestSession session) {
4.10 - super(name, "TestNG Test", session);
4.11 - parameters = params;
4.12 + super(values != null ? name + "(" + values+ ")" : name, "TestNG Test", session);
4.13 +// parameters = params;
4.14 + parameters = values;
4.15 this.values.add(values);
4.16 }
4.17