用于创建与其他软件包兼容性测试测试运行器的Buildout配方
项目描述
z3c.recipe.compattest
此 buildout 脚本生成一个待测试的软件包列表和一个测试运行器,该运行器会运行每个软件包的测试(与其他测试隔离)。这有助于检查在开发软件包时所做的更改是否破坏了使用此软件包的任何软件包。
用法
将此脚本的组件添加到您的 buildout.cfg 中。不需要进行其他配置,但您可以设置以下选项
include:要包含的软件包列表(空格分隔)(默认:空)
include-dependencies:要包含的软件包列表,包括它们的直接依赖项。(默认:空)
exclude:匹配此列表中任何正则表达式的软件包将被排除(默认:空)
script:运行器脚本的名称(默认为组件名称)
>>> cd(sample_buildout) >>> write('buildout.cfg', """ ... [buildout] ... parts = compattest ... ... [compattest] ... recipe = z3c.recipe.compattest ... include = z3c.recipe.compattest ... """)
>>> 'Installing compattest' in system(buildout) True
详细信息
该脚本为每个软件包生成一个测试运行器,以及一个全局运行器脚本(默认称为 test-compat),将运行所有测试
>>> ls('bin') - buildout - compattest - compattest-z3c.recipe.compattest
>>> cat('bin', 'compattest') #!...py... ...main(...compattest-z3c.recipe.compattest...
我们负责安装软件包的测试依赖项(从其 extras_require['test'])。为了证明这一点,我们在 zope.dottedname 上声明了一个(多余的)测试依赖项,该依赖项被选中(如果在虚拟环境中已安装该软件包,我们无法找到这些依赖项)
>>> try: ... print('start') ... cat('parts', 'compattest-z3c.recipe.compattest', 'site-packages', 'site.py') ... except IOError: ... # When the tests are run from a virtualenv, the bin scripts are created ... # in a different location, and if we are also installed in ... # that location, we don't have to install any extras ourself. ... cat('bin', 'compattest-z3c.recipe.compattest') ... print('zope.dottedname') start ...zope.dottedname...
如果我们使用 include-dependencies 而不是仅使用 include,则会选择其直接依赖项,例如 zc.buildout
>>> write('buildout.cfg', """ ... [buildout] ... parts = compattest ... ... [compattest] ... recipe = z3c.recipe.compattest ... include-dependencies = z3c.recipe.compattest ... """) >>> print('start' + system(buildout)) start... ... Generated script '/sample-buildout/bin/compattest-zc.buildout'. ...
我们所有的直接依赖项现在都有一个测试脚本
>>> ls('bin') - buildout - compattest - compattest-z3c.recipe.compattest - compattest-zc.buildout - compattest-zc.recipe.testrunner
如果您想排除自动包含的依赖项之一,请使用 exclude 选项
>>> write('buildout.cfg', """ ... [buildout] ... parts = compattest ... ... [compattest] ... recipe = z3c.recipe.compattest ... include-dependencies = z3c.recipe.compattest ... exclude = zc.buildout ... """) >>> print('start' + system(buildout)) start... Generated script '/sample-buildout/bin/compattest'...
bin/compattest-zc.buildout 现在已缺失
>>> ls('bin') - buildout - compattest - compattest-z3c.recipe.compattest - compattest-zc.recipe.testrunner
传递选项给测试运行器
如果您想在生成的测试运行器中使用自定义选项,您可以在组件选项中指定它们,前缀为 runner-。也就是说,如果您想将 --foo 选项默认传递给所有生成的测试运行器,您可以在您的组件中设置 runner-defaults = ['--foo']
>>> write('buildout.cfg', """ ... [buildout] ... parts = compattest ... ... [compattest] ... recipe = z3c.recipe.compattest ... include = z3c.recipe.compattest ... runner-defaults = ['-c', '-v', '-v'] ... """) >>> ignore = system(buildout) >>> cat('bin', 'compattest-z3c.recipe.compattest') #!...py... ...run(...['-c', '-v', '-v']...
所有以 runner- 开头的选项将自动传递给生成的测试运行器。
传递额外的路径到测试运行器
如果您想向生成的测试运行器添加一些路径,您可以使用组件中的 extra-paths 选项。如果您想测试依赖于 zope2 < 2.12 的软件包,这可能很有趣
>>> write('buildout.cfg', """ ... [buildout] ... parts = compattest ... ... [compattest] ... recipe = z3c.recipe.compattest ... include = z3c.recipe.compattest ... extra-paths = zope2location/lib/python ... """) >>> ignore = system(buildout) >>> try: ... print('start') ... cat('parts', 'compattest-z3c.recipe.compattest', 'site-packages', 'site.py') ... except IOError: ... print('start') ... # When the tests are run from a virtualenv, the bin scripts are created ... # in a different location. ... cat('bin', 'compattest-z3c.recipe.compattest') start ...zope2location/lib/python...
变更记录
2.0 (2023-02-20)
添加对 Python 3.9、3.10、3.11 的支持。
取消对 Python 2.7、3.5、3.6 的支持。
1.1.0 (2020-05-14)
取消对 Python 2.6、3.2、3.3 和 3.4 的支持。
添加对 Python 3.5、3.6、3.7、3.8、PyPy2 和 PyPy3 的支持。
修复文件描述符泄露问题。请参阅 问题 1。
1.0 (2013-03-02)
依赖于 buildout 2 和 zc.recipe.testrunner 2。
0.13.1 (2010-12-17)
修复 Windows 上的测试。
修复与虚拟环境内部 python 可执行文件一起使用的问题。
0.13 (2010-10-07)
依赖于并使用 zc.buildout 1.5 线的新功能。同时取消对 zc.buildout <= 1.5.1 的支持。
更新测试设置,使用较新的 zope.testing 版本运行,该版本不再包含 testrunner。
zc.recipe.testrunner.TestRunner 后的 z3c.recipe.scripts.scripts 脚本不再接受纯字典,所以我们用 _BackwardsSupportOptions 对象包装选项。理想情况下,它应该使用官方 API。
0.12.2 (2010-02-24)
将 include-dependencies 的收集从 __init__ 移动到 update 方法,以防止在其他 buildout 组件完成其工作之前安装依赖项。
0.12.1 (2009-12-15)
修复了在0.12版本中引入的exclude功能导致的bug(包括测试以确保不会再次发生)。
0.12 (2009-12-14)
添加了include-dependencies选项,该选项自动包含指定包的依赖项。这对于获取自动更新的、最有用的测试包列表非常方便:所有我们的依赖项。
0.11 (2009-09-30)
移除了“从subversion检出包”的功能。如果您需要此类功能,mr.developer <http://pypi.python.org/pypi/mr.developer> 提供了更全面的解决方案(并且支持多个版本控制系统)。
0.10 (2009-09-28)
以runner-为前缀的选项将自动传递给生成的测试执行器。
0.9 (2009-09-14)
测试执行器:在测试失败的情况下返回退出代码1;这简化了buildbot配置。
0.8 (2009-08-17)
现在支持Windows。
将默认主脚本的名称更改为部分名称。(不再添加“test-”前缀。)
0.7 (2009-08-13)
进一步简化了构建包列表的过程:我们现在只需取一个包列表即可。
0.6 (2009-08-07)
重新构建了我们构建测试包列表的方式:我们不再使用包含/排除来过滤从SVN检索到的列表,而是使用可以从中填充构建配置部分的显式列表,例如[versions]。因此,我们现在可以轻松地针对KGS进行测试。
始终启用测试包下的所有额外功能。
0.5 (2009-01-29)
修复了setup.py中重复的url参数,该参数在Python 2.4中会引起混淆,但在Python 2.5中被接受。
0.4 (2009-01-29)
忽略Subversion中列出的包的缺失版本发布(只要我们不尝试从Subversion运行)。
通过在配方选项中声明‘max_jobs=X’来允许并行执行单个测试执行器。
0.3 (2009-01-28)
在buildout中添加exclude参数会导致默认排除列表与buildout.cfg中的选项合并。
0.2 (2009-01-28)
实现了use_svn选项,使用SVN分支检出而不是发布版本。
0.1 (2009-01-28)
第一个发布版本
项目详情
z3c.recipe.compattest-2.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a73080b424f7d04bba75a6bf28def8386120ea38e04635286f449f7a95ae728c |
|
MD5 | 85ea1ffc4b2839e5efab6e1046d25c95 |
|
BLAKE2b-256 | 605bf00a35b6b324ff08f6ca4893c538ac13ca6c391405c26699ade8c384b34f |