testrig:为依赖包运行测试
testrig的Python项目详细描述
试验台
python包集成测试。
对“旧”和“新”版本运行某个包的测试套件 具有给定的依赖关系。报告“new”中出现的故障。
每个测试套件运行都在从头构建的virtualenv中运行。 您应该将ccache(也可能是f90cache)安装到 避免喝太多咖啡。
或者,可以使用二进制conda包-但是,二进制 此配置中可能会出现不兼容。
目前,这只是posix,并且只在linux上测试。
使用量
运行:
python -mtestrig --help python -mtestrig examples/testrig.ini pandas # run tests python -mtestrig examples/testrig-conda.ini pandas # use conda packages python -mtestrig examples/testrig.ini -j # run all packages parallel
运行可能需要很长时间,因为它从源代码构建所有内容。
配置
从.ini文件读取配置。它包含部分,每个部分 测试环境。名为DEFAULT的节可用于指定 (可重写)配置项的默认值。
首先是一个示例(对新旧numpy运行scipy测试套件 版本:
[DEFAULT] pkgs = nose tempita Cython==0.22 scipy==0.17.0 old = numpy==1.7.2 {pkgs} new = Cython==0.22 git+https://github.com/numpy/numpy@master {pkgs} [scipy] pkgs = {pkgs} scipy run = python -mpytest --junit-xml=junit.xml --pyarg scipy parser = junit:junit.xml envvars = SETUPCFG=$DIR/mysetup.cfg
更多示例可以在examples/文件夹下找到。
每个部分中的配置项为:
- env:使用哪个环境
- virtualenv:virtualenv+pip,所有包都是从源代码构建的
- conda:conda使用二进制包,除了git+url 以及以pip+为前缀的包名。 注意,你可能需要写一些像 numpy git+https://github.com/numpy/numpy.git仅在conda之后 了解由它安装的软件包存在。
- old:旧配置的包规范(见下文)。
- new:新配置的包规范(见下文)。
- run:运行测试的命令。
- parser:测试输出的分析器。可用选项:
- junit:FILENAME:解析xunit/junit xml结果输出,存储在给定的 文件名。nose和py.test都可以生成此输出: py.test --junit-xml=junit.xml ...和 nosetests --with-xunit--xunit-file=junit.xml ...。
- nose:解析nose stdout
- envvars:要设置的其他环境变量(也用于pip安装)。 文本$DIR替换为目录的绝对路径,其中 配置文件驻留。
值支持字符串插值,默认值可以是 在DEFAULT节中指定。例如:
[DEFAULT] pre = foo post = quux [section] post = {post} quux2 new = {pre} bar {post}
生成值new = foo bar quux quux2。
包规范是一个包含pip(或 conda如果使用env=conda)包版本规范,则 以下是其他可能的项目:
- --no-binary:不要通过wheels或conda安装以下软件包。
- --binary:如果可能的话,可以通过wheels或conda安装以下软件包。
默认情况下,使用二进制软件包。