将测试用例用作zope.testing层
collective.testcaselayer的Python项目详细描述
快速入门
对于安装集合命名空间的简单测试层 打包到zope并将其genericsetup配置文件安装到 plonetestcase plone站点您可以执行以下操作。
在 鸡蛋的设置。py:
from setuptools import setup, find_packages ... tests_require = ['collective.testcaselayer'] ... setup(name='collective.foo', ... install_requires=[ 'setuptools', # -*- Extra requirements: -*- ], tests_require=tests_require, extras_require={'tests': tests_require}, ... entry_points="""
告诉您的构建包含测试依赖项。这只是 对于要运行测试的部署是必需的。像这样的, 您可以将其排除在生产构建配置之外,然后 仅将其放入构建的开发配置中:
... eggs += collective.foo [tests] ...
定义层。层可以使用与 PloneTestCase类,例如:
< Buff行情>- self.login(用户名)
- self.loginasportalowner()
- self.addProduct(产品)
- self.addprofile(配置文件)
另外,还提供了一个方法,用zcml debug加载zcml文件 模式已启用:
< Buff行情>- self.loadzcml(文件,package=package)
您可以使用这样的collective.foo.testing模块:
< Buff行情>>>> from Products.PloneTestCase import ptc >>> >>> from collective.testcaselayer import ptc as tcl_ptc >>> from collective.testcaselayer import common >>> >>> class Layer(tcl_ptc.BasePTCLayer): ... """Install collective.foo""" ... ... def afterSetUp(self): ... ZopeTestCase.installPackage('collective.foo') ... ... from collective.foo import tests ... self.loadZCML('testing.zcml', package=tests) ... ... self.addProfile('collective.foo:default') >>> >>> layer = Layer([common.common_layer])
要在readme.txt doctest中使用此层,可以使用 collective.foo.tests模块如下:
< Buff行情>>>> import unittest >>> import doctest >>> >>> from Testing import ZopeTestCase >>> from Products.PloneTestCase import ptc >>> >>> from collective.foo import testing >>> >>> optionflags = (doctest.NORMALIZE_WHITESPACE| ... doctest.ELLIPSIS| ... doctest.REPORT_NDIFF) >>> >>> def test_suite(): ... suite = ZopeTestCase.FunctionalDocFileSuite( ... 'README.txt', ... optionflags=optionflags, ... test_class=ptc.FunctionalTestCase) ... suite.layer = testing.layer ... return suite >>> >>> if __name__ == '__main__': ... unittest.main(defaultTest='test_suite')
现在编写readme.txt doctest,您的测试可以使用 例如:
$ bin/instance test -s collective.foo