一个用于在Python的不同版本中同时运行测试的Nose插件。
项目描述
NoseMultiVersion是一个Nose插件,用于在Python的不同版本中同时运行测试。
当插件被激活时,您的测试套件会启动子进程,在每个Python解释器中运行相同的测试,然后结果将在主进程中打印。它被设计用于支持Python的旧版本或需要在不同配置的虚拟环境中工作的项目。因为它通过execnet和并行子进程使用套接字,所以它只为您测试时间添加了最小的开销。
安装
NoseMultiVersion、Nose和execnet必须安装在您想要运行测试的每个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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 346308aecb6a0543715265831e7976b705d2577de291c4da23062cfa8fd38a2e |
|
MD5 | b08060a06c1d27094dfcc94e0039789a |
|
BLAKE2b-256 | e77e6190c2000097e63e0327610d66f3d7319ac027f559802997ff0b1ec6f53a |