reportportal / agent-Python-RobotFramework

Robot Framework integration for Report Portal
Apache License 2.0
59 stars 32 forks source link

[v5] When click PASSED no test are shown. #56

Closed ohank closed 4 years ago

ohank commented 4 years ago

@iivanou that's architectual desicion fail, made 7 years ago. We named objects corresponding to Test Case as steps, assuming the option to involve BDD.

Now we have nested steps.

And change of STEP type to TEST will affect all variety of our agents, clients and UI as well. We plan this big step for RP 6.

Originally posted by @DzmitryHumianiuk in https://github.com/reportportal/agent-python-pytest/issues/182#issuecomment-610428925

ohank commented 4 years ago

@DzmitryHumianiuk It is good you know the problem and has a plan to fix it =) The thing that is nuclear for me is that in reportportal 4.3 this was working. Have something change in reportportal 5 so this behavior happens based on the architectural decision?

ohank commented 4 years ago

@ohank where was no big changes for the structure from v4.3 to v5.

Maybe just minor cleans ups from UI side, in order to minimize the move in RPv6.

My suggestion to get it work: change it in client. Send your tests as type STEP.

ohank commented 4 years ago

Continue here and close the other case.

ohank commented 4 years ago

My suggestion to get it work: change it in client. Send your tests as type STEP.

I don't know how to do that. Do I change in pytest agent?

iivanou commented 4 years ago

Just my two cents, I'm not gonna approve any change to the agent where the test items will be changed to be reported as steps. Fixing a defect through creation of one more defect is not an option.

DzmitryHumianiuk commented 4 years ago

That's not a defect. That is misleading in naming, which is read literally.

We follow the next structure principle in RP:

Level0 = Launch
Level1 = Suite
Level2 = TestClass
Level3 = TestCase
Level4 = Step of TestCase

Assuming the fact that you can have multiple levels of suite, it looks as

Level0 = Launch
Level[1...N] = Suite
Level(N+1) = TestClass
Level(N+2) = TestCase
Level(N+3) = Step of TestCase

There is no difference, how will you name levels. since it's just a defined value of variable, which points to specific level of nesting.

it can be name as:

`Sky` = Launch
`Eatrh` = Suite
`Dog` = TestClass
`Cat` = TestCase
`Mice` = Step of TestCase

and once you send RQ to RP saying that it is a testItem with type Cat, it will know that this object should be shown as TestCase.

Now, we have defined next structure of naming. Which is common for every every every client and agent. And for UI as well.

`Launch` = Launch
`Suite` = Suite
`Test` = TestClass
`Step` = TestCase
`NestedStep` = Step of TestCase

Which means that you should send variable type=STEP in order to see it as TestCase on UI.

But this brings misleading for people from the common sense standpoint. They do expect to see Step, by sending type=STEP instead of type=TEST. Everything in RP and all integration now follows this approach. Thus I mean that python client should follow this concept as well.

Cause once we will bring changes in type naming for RP 6, we can make it in centralized way: by updating the databases during version update, or by adding alias in API for this type. But it should be common for every integration, in order for us to make this modification as simple and fast as possible.

@iivanou don't read STEP value as step literally, just read it as combination of 4 letters, which points to TestCase object for entire ReportPortal.