testrig:为依赖包运行测试

testrig的Python项目详细描述


https://travis-ci.org/pv/testrig.png?branch=master

试验台

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安装以下软件包。

默认情况下,使用二进制软件包。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android Studio中的java Mapbox空白屏幕   java同一类型的多个对象如何同时处理另一类型的对象?   java与ArrayAdapter的斗争   eclipse如何使用JavaSelenium获取每个测试步骤的状态?我想知道测试步骤是通过、失败还是跳过   升级到Spring Boot 1.5.8和Finchley/Edgware Spring Cloud后出现java Faign异常403   java Eclipse显示“Object”而不是var的正确类型   在Java中,声明和初始化Java有什么好处。util。(例如列表)在类的主体中,与仅导入相反的是第一个?   java Flatter无法接受安卓许可证   Javasocket在Heroku上接受匿名/奇怪的socket连接   Java动态组合的设计模式   java如何在Spring中创建默认的可重写组件?   java我可以编写一个应用程序来拍照,而不保存照片并通过usb发送到我的电脑吗?   OutOfMemoryException:使用简单groovy读取11GB XML时出现内存错误,但使用普通JAVA读取时没有错误   java可以将JWT授权从spring RestController传递到外部后端API吗   线性布局中的java项目不适合屏幕   使用java读取excel中的嵌入对象   java在方法中使用抛出是否无用?   java捕获EJB回滚的ApplicationException后如何避免回滚?