Search code examples
pythonrobotframework

Python script failed but Robot framework says Passed


I'm trying to run python script by using OperatingSystem Library but when I execute the test, the python script fails but in Robot framework shows Passed

In Robot Framework:

*** Settings ***
Library        OperatingSystem

*** Test Cases ***

Executing Python 
    ${result}=    Run    python3 Main.py --config ./config3220.ini 
    Log To Console    ${result}  

Console:

ERROR:root:SerialClient could not be opened. Check connection
ERROR:root:Error at opening reference: Reference could not be opened. Check connection
Executing Python                                                      | PASS |
------------------------------------------------------------------------------
Example                                                               | PASS |
1 test, 1 passed, 0 failed 

Is there any way to test if the script is working correctly?

My solution was to add this line:

Should Not Contain    ${result}    Error  

but its a short-term solution

If I debug the python script without RF, I got this message see result


Solution

  • The documentation for the run keyword says:

    The execution status of the command is not checked by this keyword, and it must be done separately based on the returned output.

    However, there is another advice in the above documentation:

    If the execution return code is needed, either Run And Return RC or Run And Return RC And Output can be used.

    You need to return a value from your Main.py for this to work, of course.