我读过几篇文章,说如果您使用unittest.main()调用单元测试,那么如果它们失败了,它们应该以失败代码退出。我使用以下命令调用单元测试:python -m unittest discover -v
。我正在使用Python 3.6.6。一个示例单元测试可能看起来像这样:
from server import app
import unittest
class ServerTestCase(unittest.TestCase):
"""
Unittesting for the server application.
"""
def setUp(self):
"""
Create a test client
"""
self.app = app.test_client()
self.app.testing = True
def tearDown(self):
pass
def test_root_endpoint(self):
"""
Testing the root endpoint
"""
result = self.app.get('/')
self.assertEqual(result.status_code, 200)
def test_health_endpoint(self):
"""
Testing the health endpoint
"""
result = self.app.get('/health')
assert b'UP' in result.data
if __name__ == '__main__':
unittest.main()
即使我的一项测试失败,我在检查退出代码时也会得到以下提示:
$ echo $?
0
我在做什么错了?
答案 0 :(得分:0)
您是否将单元测试文件命名为test_*.py
?因为那是发现所寻找的。否则,无论您进行何种测试,结果都将是:
Ran 0 tests in 0.000s
OK
(顺便说一句,使用if __name__ ... unittest.main()
时不必-m unittest discover
)