show correct elapsed time
authorLukas Jungmann <jungi@netbeans.org>
Wed, 21 Dec 2011 12:03:19 +0100
changeset 17706a8a086cbfe5e
parent 17705 491951709d34
child 17707 2af2ee6076a7
show correct elapsed time
testng/src/org/netbeans/modules/contrib/testng/output/RegexpUtils.java
testng/src/org/netbeans/modules/contrib/testng/output/TestNGOutputReader.java
testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestSuite.java
testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestcase.java
     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