在不同版本的python中同时运行测试的nose插件。

NoseMultiVersion的Python项目详细描述


nosemultiversion是一个Nose插件,可以在不同版本的python中同时运行测试。

当插件被激活时,您的测试套件派生出子进程,以便在每个python解释器中运行相同的测试,然后在主进程中打印结果。它是为那些希望支持python遗留版本的库或应用程序设计的,或者是为那些需要在不同配置的虚拟环境中工作的项目设计的。因为它通过execnet和并行子进程使用套接字,所以只会为测试时间增加最小的开销。

安装

nosemultiversion、Noseexecnet必须安装在要在其中运行测试的每个python版本中。测试和应用程序模块不需要在每个python版本中安装。

下面是如何安装nosemultiversion及其依赖项:

从源安装pip

抓住pip source并执行如下操作:

$ 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

使用设置工具安装

$ 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中运行复杂的测试套件

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

$ 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选项一样,您可以使用config file设置其值,如下所示:

[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/–谢谢!

随机音符

  • 如果另一个插件尝试进行帧破解,那么它可能会崩溃,因为回溯和帧被压平,然后被pickle,以便它们可以从工作进程发送到主进程。
  • Nose supports Python 3.0和execnet一起使用时,将3.0添加到您的选项中应该可以神奇地工作!
  • 可能还有其他一些漂亮的东西可以从py.test中窃取,比如当您不想在特定版本中运行测试时,会引发nose的skiptest异常的装饰器。

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

推荐PyPI第三方库


热门话题
写入远程文件java   在java中尝试播放音频时出现音频流错误。wav文件   用户界面如何在Java中禁用GUI按钮   在java中如何使用条件拆分字符串   java从一个方法在数组中设置,从另一个方法获取   java如何忽略“”而不是“”   java证书。木卫一。IOException:密钥库被篡改,或密码不正确   java Android onCreate不调用   在play framework(i18n)中未正确显示德语Umlautes的java显示   使用java从eclipse运行MacOSX命令的macos   java是检查数组中备用项的最有效方法   如何使用java流编写包含循环、if/else和返回语句的代码   为什么在Java中,循环内的声明似乎比循环外的声明更快?   java软件包不存在mvn clean install