deltaspike-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig McIlwee (JIRA)" <>
Subject [jira] [Created] (DELTASPIKE-1151) CdiTestSuiteRunner.LogRunListener logs multiple times
Date Fri, 20 May 2016 15:41:13 GMT
Craig McIlwee created DELTASPIKE-1151:

             Summary: CdiTestSuiteRunner.LogRunListener logs multiple times
                 Key: DELTASPIKE-1151
             Project: DeltaSpike
          Issue Type: Bug
          Components: TestControl
    Affects Versions: 1.0.2
         Environment: DeltaSpike 1.0.2 and master
OpenWebBeans 1.2.6
JUnit 4.11 via maven-surefire-plugin 2.17

            Reporter: Craig McIlwee
            Priority: Trivial

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.)

This message was sent by Atlassian JIRA

View raw message