gpt4 book ai didi

Pythonunittest : setUpClass(), 未调用tearDownClass()、setUpModule() 和tearDownModule()

转载 作者:行者123 更新时间:2023-11-30 22:47:51 25 4
gpt4 key购买 nike

使用 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()

我希望看到 tearDownClasstearDownModule 出现在控制台上,但事实并非如此:

$ ./test.py 
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
$

我做错了什么?

最佳答案

Python 2.6 的答案:

Python 2.6 unittest doc没有提到setUpClass、tearDownClass、setUpModule 和tearDownModule 方法/函数。所以它们可能不受单元测试的支持,并且根本没有被调用。

但是unittest2似乎从2.4开始就支持Python了。它可能会为您带来 Python 2.6 的单元测试不支持的功能。

<小时/>

Python 2.7 或更高版本的答案:

我认为您没有做任何错误,并且调用了setUp*和tearDown*函数/方法。我认为单元测试只是隐藏了打印的字符串。

尝试为 unittest.main 的调用提供详细级别 2函数,它应该解决“问题”:

unittest.main(verbosity=2)

关于Pythonunittest : setUpClass(), 未调用tearDownClass()、setUpModule() 和tearDownModule(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40380547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com