作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 python 2.6.6 的 unittest
模块,如何在所有测试运行后调用代码?
请考虑以下 MCVE:
#!/bin/env python
import unittest
def setUpModule():
print 'setUpModule'
def tearDownModule():
print 'tearDownModule'
class TestClass(unittest.TestCase):
@classmethod
def setUpClass(cls):
print 'setUpClass'
@classmethod
def tearDownClass(cls):
print 'tearDownClass'
def test_trivia(self):
self.assertTrue(True)
def main():
"""entry point"""
unittest.main()
if __name__ == '__main__':
main()
我希望看到 tearDownClass
和 tearDownModule
出现在控制台上,但事实并非如此:
$ ./test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
$
我做错了什么?
最佳答案
Python 2.6 unittest doc没有提到setUpClass、tearDownClass、setUpModule 和tearDownModule 方法/函数。所以它们可能不受单元测试的支持,并且根本没有被调用。
但是,unittest2似乎从2.4开始就支持Python了。它可能会为您带来 Python 2.6 的单元测试不支持的功能。
<小时/>我认为您没有做任何错误,并且调用了setUp*和tearDown*函数/方法。我认为单元测试只是隐藏了打印的字符串。
尝试为 unittest.main 的调用提供详细级别 2函数,它应该解决“问题”:
unittest.main(verbosity=2)
关于Pythonunittest : setUpClass(), 未调用tearDownClass()、setUpModule() 和tearDownModule(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40380547/
使用 python 2.6.6 的 unittest 模块,如何在所有测试运行后调用代码? 请考虑以下 MCVE: #!/bin/env python import unittest def setU
我是一名优秀的程序员,十分优秀!