reportportal / agent-Python-RobotFramework

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

Message field of status tags are not logged when there are no keywords. #140

Closed arvip closed 2 years ago

arvip commented 2 years ago

Describe the bug The status message of a failed test with no associated <kw is not logged into reportportal. Imagine scenarios where the test suite fails due to which subsequent testcases fail. In these cases, the failure messages of testcases are not reported in reportportal.

Steps to Reproduce Steps to reproduce the behavior:

  1. Create a sample.robot file with the contents below:

Test Cases Verify messages are sent successfully

Verify test case works fine Log Success!

  1. Since the first testcase contains no keywords, it will fail. output.xml file shows: <test id="s1-s1-t1" name="Verify messages are sent successfully" <status status="FAIL" starttime="20220131 15:30:03.511" endtime="20220131 15:30:03.528" critical="yes"# Test case contains no keywords.</status </test

  2. Open the failing test case in Reportportal UI.

Expected behavior Reportportal UI should show the failure message 'Test case contains no keywords.'

Actual behavior No failure message is logged. Only empty page is shown. Though the testcase logs the status="FAIL" correctly, it fails to show the message which is crucial for analytics.

Package versions reportportal-client - 5.1.0, robotframework-reportportal - 5.2.1

Additional context I debugged and I can see RobotFramework sending the status message for a failure. Listener fails to capture it, so I modified the reportportal_listener and it now posts it to reportportal. However, the UI doesn't display that status message. Here is the log: My log: Value of attributes from RF {'id': 's1-s1-t1', 'longname': 'Robot.Messages.Verify messages are sent successfully', 'doc': '', 'tags': ['msg'], 'starttime': '20220131 12:54:45.567', 'endtime': '20220131 12:54:45.582', 'elapsedtime': 15, 'status': 'FAIL', 'message': 'Test case contains no keywords.', 'critical': 'yes', 'template': ''} Modified listener posts: My log: Value of fta_rq {'attributes': [{'value': 'msg'}], 'end_time': '1643626485582', 'issue': None, 'item_id': '45677371-be39-4f8b-af70-b946c9ea2a3c', 'status': 'FAILED', 'message': 'Test case contains no keywords.'} message_fails message_post

See attachment for more reference.