如果python测试全部通过,则获取状态

时间:2014-03-22 22:07:48

标签: python ruby unit-testing

我正在尝试编写一个Ruby脚本来执行目录中的所有Python测试。 以下是该脚本的主要部分:

system("python #{solution}/tests.py")

有没有办法以某种方式了解测试是否已通过并仅显示失败的(或其他任何)的输出?我只是希望能够告诉每个测试它是否通过。 (如果不可能使用Ruby,我也可以使用Python开放解决方案)

测试看起来都像这样:

import unittest
from solution import my_function

class MyFunctionTest(unittest.TestCase):
    def test_my_function(self):
        self.assertEqual(42, my_function(42))

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

非常感谢! :)

1 个答案:

答案 0 :(得分:0)

您可以使用nosetests打印失败测试的输出,它会运行它们并压缩通过的测试:

$ nosetests
.............
----------------------------------------------------------------------
Ran 13 tests in 0.015s

OK

添加失败的测试:

$ nosetests
F.............
======================================================================
FAIL: test_failed (x32.tests.failing_test.FailingTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/leigh/Projects/x32/x32/tests/failing_test.py", line 5, in test_failed
    self.assertEqual(1, 2)
AssertionError: 1 != 2

----------------------------------------------------------------------
Ran 14 tests in 0.013s

FAILED (failures=1)

此处还有nose的指南:https://nose.readthedocs.org/en/latest/

或者,您可以转到父目录并运行类似python -m pytest .的内容来执行测试,但这会告诉您哪些也会通过。