[TIP] Incorrect return code py.test on Windows/Jenkins ?

Pere Martir pere.martir4 at gmail.com
Tue Mar 22 02:31:06 PDT 2011

On Mon, Mar 21, 2011 at 7:27 PM, Jorge Vargas <jorge.vargas at gmail.com> wrote:
> On Mon, Mar 21, 2011 at 1:44 PM, Pere Martir <pere.martir4 at gmail.com> wrote:
>> The return code of py.test on Windows makes Jenkins to consider the
>> build "failed" if there is any failed testcase in the generated JUnit
>> XML.
> Why you want the build to pass if the tests failed ?

A "build" in Jenkins/Hudson has 4 status, the return code of the last
command distinguish between  (1) and (2):

(1) success/blue - the return code indicates "success" - zero usually
(2) failed/red - the return code indicates a failure - nonzero usually
(3) unstable/yellow - there is a failure test case record in JUnit XML
(4) aborted/gray - manually by user

If the executed Python script raises an exception and it's not
handled, for example, SyntaxError, the Python interpretor returns a
non-zero code and Jenkins/Hudson considers the "build" to be "failed"
- (2).

If the "execution" of the script is successful - that is, all
exceptions are caught and handled, the return code should be success
(zero), in spite of failed testcases (1). If I recall correctly, this
is the behavior of pyunit.

Otherwise there is no way to distinguish between:
(a) Execution failure of the script - syntax error, interpretor not
found, Jenkin/Hudson connection reset, anything not directly related
to the test cases themselves.
(b) Real failure of test cases due.

More information about the testing-in-python mailing list