Uploaded image for project: 'DeltaSpike'
  1. DeltaSpike
  2. DELTASPIKE-727

CdiTestSuiteRunner.LogRunListener logs multiple times

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Trivial
    • Resolution: Not A Problem
    • 1.0.2
    • None
    • TestControl
    • None
    • DeltaSpike 1.0.2 and master
      OpenWebBeans 1.2.6
      JUnit 4.11 via maven-surefire-plugin 2.17

    Description

      CdiTestRunner logs the "started", "finished" and "failed"-events via org.apache.deltaspike.testcontrol.api.junit.CdiTestSuiteRunner.LogRunListener. Using CdiTestRunner in more than one test class leads to the repeated logging of said lines, with one more duplicate per @RunWith(CdiTestRunner) usage.

      I've analyzed the problem a bit: CdiTestRunner works by adding an LogRunListener instance to the RunNotifier in CdiTestRunner#addLogRunListener, which also keeps track of the RunNotifiers that already have the Listener attached via the static notifierIdentities Set, only adding the Listener if the RunNotifier isn't in the Set. The problem is that notifierIdentities gets cleared in CdiTestRunner.AfterClassStatement#evaluate, which leaves the Listener alone and thus defeats the purpose of the Set in the first place.

      I've tried removing the notifierIdentities.clear() from evaluate which fixes this issue, but I'm unsure if that's the right fix for the problem. (Writing a unit test which demonstrates the issue would be easy, but I have no idea how to provide a test that actually fails based on the test's log output.)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rsteininger Ronald Steininger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: