虽然我的单元测试在python中失败,但jenkins仍然成功构建。为什么构建失败?

时间:2014-02-13 22:40:40

标签: python jenkins python-unittest

虽然我的单元测试在python中失败,但jenkins仍然成功构建。为什么构建失败?

我的unittest代码是:

from main import IsOdd

import unittest
class IsOddTests(unittest.TestCase):

def testOne(self):
    self.failUnless(IsOdd(1))

def testTwo(self):
    self.failIf(IsOdd(2))

if __name__ == '__main__':
    unittest.main()

我的控制台输出是:

.F
======================================================================
FAIL: testTwo (__main__.IsOddTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test.py", line 13, in testTwo
    self.failIf(IsOdd(3))
AssertionError: True is not false

----------------------------------------------------------------------
Ran 2 tests in 0.000s

FAILED (failures=1)

然而我的jenkins构建仍然成功构建。我该怎么办?

2 个答案:

答案 0 :(得分:1)

没有足够的信息来回答这个问题。最终,Jenkins是一个简单的工具 - 如果它运行的进程返回0,它会将构建显示为传递,如果不是,则将其显示为失败。如果您正在执行类似于运行shell脚本来运行测试的操作,则必须构建一个类似

的支票。
if line[-1].startswith("FAILED"):
    return 1

告诉我们更多关于您的工作如何设置以及您希望如何识别失败的信息,以及您可以获得更好的答案。

答案 1 :(得分:0)

Jenkins解释它运行的程序的退出代码。退出代码0表示一切正常。因此,如果您的测试失败,您的程序应返回非零退出代码,例如1,它很可能不会。

要测试它,请在命令行上手动运行测试,然后输入execute

user@localhost$ $?

显示最后一个命令的退出代码。