Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用机头/夹具/网络测试(氨基硝酸盐)测试樱桃木_Python_Cherrypy_Nose_Webtest_Fixture - Fatal编程技术网

Python 用机头/夹具/网络测试(氨基硝酸盐)测试樱桃木

Python 用机头/夹具/网络测试(氨基硝酸盐)测试樱桃木,python,cherrypy,nose,webtest,fixture,Python,Cherrypy,Nose,Webtest,Fixture,我正在开发一个CherryPy应用程序,我想为它编写一些自动化测试。我选择用鼻测试。该应用程序使用sqlalchemy作为db后端,所以我需要使用fixture包来提供固定的数据集。我还想做网络测试。以下是我如何将其组合在一起的: 我在创建所有模型的文件中有一个helper函数init_model(test=False)。它连接到生产或测试(如果test==True或cherrypy.request.app.test==True)数据库并调用create\u all 然后,我为以下测试创建了一个

我正在开发一个CherryPy应用程序,我想为它编写一些自动化测试。我选择用鼻测试。该应用程序使用sqlalchemy作为db后端,所以我需要使用fixture包来提供固定的数据集。我还想做网络测试。以下是我如何将其组合在一起的:

我在创建所有模型的文件中有一个helper函数
init_model(test=False)
。它连接到生产或测试(如果test==True或cherrypy.request.app.test==True)数据库并调用
create\u all

然后,我为以下测试创建了一个基类:

class BaseTest(DataTestCase):
def __init__(self):
    init_model(True)
    application.test = True
    self.app = TestApp(application)
    self.fixture = SQLAlchemyFixture(env = models, engine = meta.engine, style = NamedDataStyle())
    self.datasets = (
        # all the datasets go here
        )
现在我通过创建BaseTest的子类并调用
self.app.some_method()


这是我第一次用python做测试,所有这些看起来都很复杂。我想知道我是否按照作者的意图使用了上述软件包,以及它是否过于复杂。

对于任何大小的系统来说,这看起来都很像正常的测试胶水。换句话说,它并不太复杂

事实上,我建议在一个方面稍微复杂一点:我想你会发现在每个孩子的测试类中建立一个新的数据库非常慢。更常见的做法是每次运行至少设置一次所有表,而不是每次类设置一次。然后,您可以让每个测试方法为自己创建所需的所有数据,和/或在事务中运行每个测试用例,并在
最后:
块中回滚所有测试用例