allure-framework / allure-java

Allure integrations for Java test frameworks
Apache License 2.0
355 stars 224 forks source link

Compatibility error regarding the 'Status' type between the 'model' and 'entity' libraries with Allure TestNG versions above 2.27.0 #1131

Open elektroyazilim opened 3 weeks ago

elektroyazilim commented 3 weeks ago

Describe the Bug

What happened?

if (result.getStatus() == Status.FAILED {}

The "return type" of the getStatus() method is a Status type from the io.qameta.allure.model library, and the Status enum in the expression Status.FAILED is also from the io.qameta.allure.model library. This is valid in "Allure TestNG 2.27.0" version and below. - This version and below are working -

However, in version 2.28.0 and above, there is an incompatibility between the return type of getStatus() and the Status enum type. result.getStatus() comes from the model library, while the Statusenum comes from the entity library. Therefore, I cannot apply equality between these different types.

The relevant bug is as follows:

Operator '==' cannot be applied to 'io.qameta.allure.model.Status', 'io.qameta.allure.entity.Status'.

Steps to Reproduce

Test Case: Implement Allure Listener with beforeTestStop() Method Override

Steps:

1. Create the "AllureListener" Class: Define a new class named AllureListener.

2. Override the beforeTestStop() Method: Inside the AllureListener class, override the method beforeTestStop(). @Override public void beforeTestStop(TestResult result) { // Method implementation here }

3. Add Conditional Logic for Test Status:

Implement the following condition within the overridden beforeTestStop() method:

if (result.getStatus() == Status.FAILED || result.getStatus() == Status.SKIPPED || result.getStatus() == Status.BROKEN) { // Add logic for handling these statuses }

Expected Behaviour

"The return type of the result.getStatus() method should be of the same type as the 'Status' enum."

Screenshots or Additional Context

364108321-668a55d5-6daa-43e2-a177-678a7877a9d6

What Language are you using?

Java

What Framework/Allure Integration you are using?

allure-testng

What version of Allure Integration you are using?

2.28.0

What version of Allure Report you are using?

2.28.0

Code of Conduct