我正在尝试编写一个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()
提前感谢!:)
您可以使用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 .
之类的东西来执行测试,但是这也会告诉您哪些测试通过了。