跳转到主要内容

一个用于在Python的不同版本中同时运行测试的Nose插件。

项目描述

NoseMultiVersion是一个Nose插件,用于在Python的不同版本中同时运行测试。

当插件被激活时,您的测试套件会启动子进程,在每个Python解释器中运行相同的测试,然后结果将在主进程中打印。它被设计用于支持Python的旧版本或需要在不同配置的虚拟环境中工作的项目。因为它通过execnet和并行子进程使用套接字,所以它只为您测试时间添加了最小的开销。

安装

NoseMultiVersion、Noseexecnet必须安装在您想要运行测试的每个Python版本中。您的测试和应用模块不需要在每个Python版本中安装。

以下是安装NoseMultiVersion及其依赖项的方法

从源码使用pip安装

获取pip源并执行类似以下操作

$ cd /pip/source
$ sudo python2.4 ./scripts/pip install -e hg+http://bitbucket.org/kumar303/nose-multiversion/#egg=NoseMultiVersion
$ sudo python2.5 ./scripts/pip install -e hg+http://bitbucket.org/kumar303/nose-multiversion/#egg=NoseMultiVersion
$ sudo python2.6 ./scripts/pip install -e hg+http://bitbucket.org/kumar303/nose-multiversion/#egg=NoseMultiVersion

从PyPI使用pip安装

与上面类似,但执行

$ cd /pip/source
$ sudo python2.4 ./scripts/pip install NoseMultiVersion
$ sudo python2.5 ./scripts/pip install NoseMultiVersion
$ sudo python2.6 ./scripts/pip install NoseMultiVersion

使用setuptools安装

$ sudo easy_install-2.4 http://bitbucket.org/kumar303/nose-multiversion/get/tip.zip
$ sudo easy_install-2.5 http://bitbucket.org/kumar303/nose-multiversion/get/tip.zip
$ sudo easy_install-2.6 http://bitbucket.org/kumar303/nose-multiversion/get/tip.zip

在Python的多个版本中运行简单的测试套件

如果您有一个没有许多依赖的应用程序,您可能只需像这样在多个版本中运行测试

$ cd /your/test/suite
$ nosetests --in-python=2.4,2.5,2.6

在虚拟环境中运行复杂的测试套件

您的应用程序很可能有一些依赖项,您可能使用自定义virtualenv来管理。传递给--in-python=选项的值也可以是Python解释器的绝对路径,因此设置您的虚拟环境目录然后像这样运行您的测试

$ cd /your/test/suite
$ nosetests --in-python=/path/to/a/virtualenv-for-2.5/bin/python --in-python=/path/to/a/virtualenv-for-2.6/bin/python

在配置脚本中声明选项值

与任何Nose选项一样,您可以使用一个配置文件来设置其值,例如这样

[nosetests]
in-python=
    /path/to/your-virtualenv1/bin/python
    /path/to/your-virtualenv2/bin/python
    /path/to/jython
    /path/to/your-custom-build/bin/python

致谢

此插件由Kumar McMillan创建 <kumar.mcmillan@gmail.com>。非常感谢Holger Krekel将其提取为execnet的独立包。这使得Nose能够从py.test中窃取一个很好的功能:)

错误、补丁

请将所有错误和补丁提交到http://bitbucket.org/kumar303/nose-multiversion/ – 感谢!

随机笔记

  • 如果另一个插件尝试进行帧破解,则可能会损坏,因为在将跟踪和帧扁平化后进行序列化,以便可以从工作进程发送到主进程。

  • 当Nose支持Python 3.0以及execnet时,将3.0添加到您的选项中应该会神奇地工作!

  • 可能还有其他一些可以从py.test中窃取的巧妙功能,例如装饰器,当您不想在特定版本中运行测试时,会引发Nose的SkipTest异常。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

NoseMultiVersion-0.1.tar.gz (5.7 kB 查看散列)

上传时间

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面