在不同版本的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写入文件和I/O   java日历返回错误的当前日期安卓   if语句if变量等于1(java)   java很难让Joda有时间使用我的bukkit插件   json如何创建基于java的应用程序,该应用程序将从网站获取输入   java如何在多页中打印大型JPanel   java my spinner在添加从firebase数据库中选择的多个值时被覆盖   java用Play框架覆盖HTTP方法   试图获取所有用户时,java错误请求400。Dto和表格   java支持bean加载图像后javascript自动调用JS函数   java在MTOM的@StreamingAttachment(Metro)中,Parsely的意思是什么   具有可抢占线程队列的多线程java执行器   Java Opencv connectedComponentsWithStats   java如何向数组中添加2D数组的数目   eclipse为什么我的Java Zork克隆不能正确循环?   java在哪里放置定制的第二个web。xml   java如何更改最近应用列表中显示的快照?   java Browser#getText()返回空字符串