Python 用机头/夹具/网络测试(氨基硝酸盐)测试樱桃木
我正在开发一个CherryPy应用程序,我想为它编写一些自动化测试。我选择用鼻测试。该应用程序使用sqlalchemy作为db后端,所以我需要使用fixture包来提供固定的数据集。我还想做网络测试。以下是我如何将其组合在一起的: 我在创建所有模型的文件中有一个helper函数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 然后,我为以下测试创建了一个
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做测试,所有这些看起来都很复杂。我想知道我是否按照作者的意图使用了上述软件包,以及它是否过于复杂。对于任何大小的系统来说,这看起来都很像正常的测试胶水。换句话说,它并不太复杂 事实上,我建议在一个方面稍微复杂一点:我想你会发现在每个孩子的测试类中建立一个新的数据库非常慢。更常见的做法是每次运行至少设置一次所有表,而不是每次类设置一次。然后,您可以让每个测试方法为自己创建所需的所有数据,和/或在事务中运行每个测试用例,并在
最后:
块中回滚所有测试用例