将自定义Python对象传递给nosetests

2024-10-03 23:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试重新组织我们的自动化测试库,而nose似乎真的很有前途。我的问题是,将Python对象传递到nose测试中的最佳策略是什么?在

我们的测试是在一个testlib中组织的,其中包含一组执行不同类型请求操作的模块。像这样:

testlib
\-testmoda
\-testmodb
\-testmodc

在某些情况下,测试模块(即testmoda)只不过是test_something2()函数,而在某些情况下,我们在testmob中有一个TestModB类和test_anotherthing2()函数。酷的是鼻子很容易找到两者。在

大多数测试函数都是请求工厂的功能,可以轻松地共享到服务器场的单个连接。因此我们做了很多测试,TestModB.测试其他内容2(cnn)等

目前我们不使用nose,相反,我们有一个自制的驱动程序脚本的大杂烩,其中包含要执行的测试的硬编码列表。每个驱动程序脚本都创建自己的连接对象。维护这些脚本和连接细节是很痛苦的。在

我想免费利用nose的美丽发现功能,传递我选择的连接对象。在

提前谢谢!在

罗布

另外,连接对象不可pickle。:(


Tags: 模块对象函数test功能脚本类型驱动程序
2条回答

据我所知,并没有简单的方法简单地将自定义对象传递到Nose。在

然而,正如马特指出的,有一些可行的解决办法可以达到类似的效果。在

基本上,这样做:

  1. 将数据字典设置为包级全局
  2. 将自定义对象添加到该词典
  3. 创建一些工厂函数以返回这些自定义对象,或者创建新对象(如果它们存在/合适)
  4. 重构现有的testlib\testmod*模块以使用工厂

你能用一个工厂创建连接,然后让函数test_something1()(不带参数)使用工厂来获得连接吗?在

相关问题 更多 >