Open mialeska opened 1 year ago
Please find the debug log below:
16:53:21.924 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: beforeMethodSetUp - base.BaseTest is test:false
16:53:21.924 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: Done
16:53:21.926 [pool-2-thread-1] INFO com.qmetry.qaf.automation.integration.ResultUpdator -- QAF Json Reporter: {description=, name=beforeMethodSetUp}
16:53:21.926 [pool-1-thread-1] DEBUG com.qmetry.qaf.automation.integration.ResultUpdator -- QAF Json Reporter: started to update result
16:53:21.957 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFResultListener -- onTestStart: start
16:53:21.958 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- beforeInvocation: exampleTest
16:53:21.960 [pool-2-thread-1] INFO 1 -- I am example step
16:53:21.963 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: exampleTest - tests.ExampleTest is test:true
16:53:21.971 [pool-2-thread-1] INFO com.qmetry.qaf.automation.ui.WebDriverCommandLogger -- Executing screenshot parameters: {}
16:53:22.112 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.core.QAFTestBase -- Capturing screen shotExampleTest_ej4k32a1eprx26292.png
16:53:22.113 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: Done
16:53:22.121 [pool-2-thread-1] INFO com.qmetry.qaf.automation.integration.ResultUpdator -- QAF Json Reporter: {description=exampleTest, name=exampleTest, sign=ExampleTest.exampleTest()[pri:0, instance:tests.ExampleTest@1846579f]}
16:53:22.121 [pool-1-thread-1] DEBUG com.qmetry.qaf.automation.integration.ResultUpdator -- QAF Json Reporter: started to update result
16:53:22.127 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- beforeInvocation: updateTestStatus
16:53:22.128 [pool-2-thread-1] INFO 1 -- Executing logTestStatusToReport() method
16:53:22.136 [pool-2-thread-1] INFO 1 -- Capturing the screenshot :: takeScreenshot
16:53:22.267 [pool-2-thread-1] INFO 1 -- The screenshot is saved at D:\tmp-ui-tests/extent-report/screenshots/exampleTest_screenshot.png
16:53:22.273 [pool-2-thread-1] INFO 1 -- Screenshot available at the location and trying to attach to the report
16:53:22.426 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: updateTestStatus - base.BaseTest is test:false
16:53:22.426 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: Done
16:53:22.433 [pool-2-thread-1] INFO com.qmetry.qaf.automation.integration.ResultUpdator -- QAF Json Reporter: {description=, name=updateTestStatus}
16:53:22.433 [pool-1-thread-1] DEBUG com.qmetry.qaf.automation.integration.ResultUpdator -- QAF Json Reporter: started to update result
16:53:22.433 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- beforeInvocation: afterMethod
16:53:22.435 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: afterMethod - com.qmetry.qaf.automation.ui.AbstractTestCase is test:false
16:53:22.435 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: Done
16:53:22.436 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- beforeInvocation: afterClass
16:53:22.436 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: afterClass - com.qmetry.qaf.automation.ui.AbstractTestCase is test:false
16:53:22.436 [pool-2-thread-1] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: Done
16:53:22.437 [main] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- beforeInvocation: afterTest
16:53:22.437 [main] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: afterTest - com.qmetry.qaf.automation.ui.AbstractTestCase is test:false
16:53:22.437 [main] DEBUG com.qmetry.qaf.automation.testng.pro.QAFInvokedMethodListener2 -- afterInvocation: Done
FAILED: exampleTest
exampleTest
java.lang.AssertionError: Some assertion expected [false] but found [true]
@cjayswal yes I used it for the reference, but add some customizations for project specific:
Maven aspectj-maven-plugin is not specific to eclipse. If you don't want to use aspectj-maven-plugin
refer configuration used in plugin.
@cjayswal I am using the aspectj-maven-plugin. But my configuration is a little different, as with yours config Lombok dependency is not working. Lombok requires aspectJ to be configured in the maven-surefire-plugin's argline:
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
With your configuration added, I see the following error:
[WARNING] You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
Your processor is: org.aspectj.org.eclipse.jdt.internal.compiler.apt.dispatch.BatchProcessingEnvImpl
Lombok supports: OpenJDK javac, ECJ
<unknown source file>:<no line information>
[WARNING] advice defined in com.qmetry.qaf.automation.step.JavaStepReporter has not been applied [Xlint:adviceDidNotMatch] C:\Users\a2.meleshko.m2\repository\com\qmetry\qaf\3.2.0\qaf-3.2.0.jar!com\qmetry\qaf\automation\step\JavaStepReporter.class:0
Below is my configuration for plugins section:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.14.0</version>
<executions>
<execution>
<id>default-compile</id>
<phase>process-classes</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<weaveDirectories>
<weaveDirectory>${project.build.directory}/classes</weaveDirectory>
</weaveDirectories>
</configuration>
</execution>
<execution>
<id>default-testCompile</id>
<phase>process-test-classes</phase>
<goals>
<goal>test-compile</goal>
</goals>
<configuration>
<weaveDirectories>
<weaveDirectory>${project.build.directory}/test-classes</weaveDirectory>
</weaveDirectories>
</configuration>
</execution>
</executions>
<configuration>
<source>1.8</source>
<target>1.8</target>
<showWeaveInfo>true</showWeaveInfo>
<verbose>true</verbose>
<complianceLevel>1.8</complianceLevel>
<aspectLibraries>
<aspectLibrary>
<groupId>com.qmetry</groupId>
<artifactId>qaf</artifactId>
</aspectLibrary>
</aspectLibraries>
<sources/>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
<forceAjcCompile>true</forceAjcCompile>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
QAF Version
Latest release - 3.2.0
We have existing maven solution with large amount of selenium tests written in java with testNG. Now we would like to import execution results into QMetry for Jira. We decided to integrate QAF package into our existing solution, to get results in qas format, with failure screenshots and steps included.
As a starter, I followed the example in your repository: https://github.com/qmetry/qtm4j-automation-sample-projects/blob/master/QAF/pom.xml a I managed to set our driver instance to qaf, so currently we have got test results with screenshots. But now I still have an issue with it:
I started marking our steps (we call them pageActions) with @QAFTestStep annotations, to see them as checkpoints in the generated test result jsons. I have also added resources/application.properties with the parameter step.provider.pkg=pageActions (pageActions is a full name of our package with steps. I have added related plugins and dependencies for aspectj and qaf into our pom.xml . I can see that aspects has been generated (AjcClosure classes generated in target directory after the build). But unfortunately steps are not getting added to test result jsons. Could you please suggest where could be the problem or how to achieve what we want?
Steps To Reproduce
Expected behavior
Method marked with @QAFTestStep annotation gets added as checkpoint to test-results/ ... .json file
Actual behavior
Only errors and assertions are present in test-results/ ... .json file
Is the issue reproducible on runner?
Test case sample
I prepared a temp repository with sample maven project with our dependencies, where the issue can be reproduced: https://github.com/mialeska/tmp-ui-tests/tree/test-results
Please find generated test results in the test-results branch.