gpt4 book ai didi

具有昂贵设置的 Python 单元测试

转载 作者:IT老高 更新时间:2023-10-28 20:38:58 25 4
gpt4 key购买 nike

我的测试文件基本上是:

class Test(unittest.TestCase):
def testOk():
pass

if __name__ == "__main__":
expensiveSetup()
try:
unittest.main()
finally:
cleanUp()

但是,我确实希望通过 Netbeans 测试工具运行我的测试,为此我需要不依赖于 ma​​in 中完成的环境设置的单元测试。看Caching result of setUp() using Python unittest - 它建议使用 Nose 。但是,我认为 Netbeans 不支持这一点。我没有找到任何信息表明它确实如此。此外,我是这里唯一实际编写测试的人,所以我不想为其他 2 位开发人员引入额外的依赖项,除非需要。

如何为我的 TestSuite 中的所有测试进行一次设置和清理?

这里昂贵的设置是创建一些带有虚拟数据的文件,以及设置和拆除一个简单的 xml-rpc 服务器。我还有 2 个测试类,一个在本地测试,一个在 xml-rpc 上测试所有方法。

最佳答案

如果您使用 Python >= 2.7(或 unittest2 对于 Python >= 2.4 & <= 2.6),最好的方法是使用

def setUpClass(cls):
# ...
setUpClass = classmethod(setUpClass)

为属于给定类的所有测试执行一次初始化。

要执行清理,请使用:

@classmethod
def tearDownClass(cls):
# ...

另见 unittest 标准库 documentation on setUpClass and tearDownClass classmethods .

关于具有昂贵设置的 Python 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/423483/

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