Skip to content

TestNG param integration not working as expected #731

@horstLei

Description

@horstLei

hi me again ;-)
I made a small test to check the parameter transfer (Project on Github)
env:

testng 7.11
arquillian 1.9.5.final
arquillian - suite extension (it has no influence on behaviour! I removed it / kept it same result)
openjdk version "21.0.3" 2024-04-16 LTS
I added 2 Services one CDI MyCdiBean / one EJB MyEjbBean both injected
one Test
with before/after suite / method to check which parameter when accessible:

if I remove extend Arquillian / everything works as expected the test parameters from testng.xml are correct transferred to the method
as soon as I add extend Arquillian -> the function ends and the parameter are getting defaulted... which causes afterwards more problems that @options must be defined etc

log without Arquillian (nullpointers are thrown because injections is not working... but log before is interesting):

[TestNG] RUNNING: Suite: "ParamTest" containing "2" Tests (config: /System/Volumes/Data/data/private_projects/demo-tests/demo-service-testng_params/src/test/resources/testng.xml)
[TestNG] INVOKING: "ParamTest" - com.example.MyCdiTest.testCdiBeanInjection(java.lang.String,java.lang.String,java.lang.String)(value(s): "suiteParamABC", "testParamABC", "methodParamABC")
MyCdiTest.testCdiBeanInjection called with params: suiteParamABC, testParamABC,methodParamABC
MyCdiTest.testCdiBeanInjection called: null
MyCdiTest.testCdiBeanInjection called:  <test thread-count="1" name="ParamTest" verbose="10">
   <parameter name="testParam1" value="testParamABC"/>
   <parameter name="classesParam1" value="classesParamABC"/>
   <groups>
     <run>
       <include name="arquillian"/>
     </run>
   </groups>
   <classes>
     <class name="com.example.MyCdiTest">
       <parameter name="classParam1" value="classParamABC"/>
       <methods>
         <include name="testCdiBeanInjection">
           <parameter name="methodParam1" value="methodParamABC"/>
         </include> <!-- testCdiBeanInjection -->
         <include name="testEjbBeanInjection"/>
       </methods>
     </class> <!-- com.example.MyCdiTest -->
   </classes>
 </test> <!-- ParamTest -->

with Arquillian:

[TestNG] INVOKING CONFIGURATION: "ParamTest" - @BeforeMethod org.jboss.arquillian.testng.Arquillian.arquillianBeforeTest(java.lang.reflect.Method)(value(s): public void com.example.MyCdiTest.testCdiBeanInjection(java.lang.String,java.lang.String,java.lang.String))
[TestNG] PASSED CONFIGURATION: "ParamTest" - @BeforeMethod org.jboss.arquillian.testng.Arquillian.arquillianBeforeTest(java.lang.reflect.Method)(value(s): public void com.example.MyCdiTest.testCdiBeanInjection(java.lang.String,java.lang.String,java.lang.String)) finished in 2 ms
[TestNG] INVOKING: "ParamTest" - com.example.MyCdiTest.testCdiBeanInjection(java.lang.String,java.lang.String,java.lang.String)(value(s): "suiteParamABC", "testParamABC", "methodParamABC")
08:20:32,673 INFO  [stdout] (default task-2) Before Suite called param: defaultSuiteParam
08:20:32,700 INFO  [stdout] (default task-2) Params from context: null, null
08:20:32,700 INFO  [stdout] (default task-2) Params from context: {}
08:20:32,701 INFO  [stdout] (default task-2) Before Method called param: defaultTestParam
08:20:32,704 INFO  [stdout] (default task-2) MyCdiTest.testCdiBeanInjection called with params: defaultSuiteParam, defaultTestParam,defaultMethodParam
08:20:32,704 INFO  [stdout] (default task-2) MyCdiTest.testCdiBeanInjection called: com.example.MyCdiBean@2f6bbe04
08:20:32,706 INFO  [stdout] (default task-2) MyCdiTest.testCdiBeanInjection called:  <test thread-count="5" name="Arquillian - class com.example.MyCdiTest" verbose="0">
08:20:32,706 INFO  [stdout] (default task-2)    <classes>
08:20:32,706 INFO  [stdout] (default task-2)      <class name="com.example.MyCdiTest">
08:20:32,706 INFO  [stdout] (default task-2)        <methods>
08:20:32,706 INFO  [stdout] (default task-2)          <include name="testCdiBeanInjection"/>
08:20:32,707 INFO  [stdout] (default task-2)        </methods>
08:20:32,707 INFO  [stdout] (default task-2)      </class> <!-- com.example.MyCdiTest -->
08:20:32,707 INFO  [stdout] (default task-2)    </classes>
08:20:32,707 INFO  [stdout] (default task-2)  </test> <!-- Arquillian - class com.example.MyCdiTest -->
08:20:32,707 INFO  [stdout] (default task-2) 
08:20:32,709 INFO  [stdout] (default task-2) After Suite

I'm running the tests with:

 mvn test -Darquillian.debug=false 

br horst

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions