2011-08-15 38 views
12

我没有从命令行运行鼻子测试,而是使用测试运行器为所有测试设置了一些东西,包括连接到本地测试实例MongoDB的。鼻子文档似乎只表明如何通过命令行或位于主目录中的配置文件传递选项。有没有办法在使用脚本运行测试时传递选项,例如--with-xunit?将选项传递给Python测试脚本中的鼻子

回答

8

像这样:

import nose 

argv = ['fake', '--with-xunit'] 
nose.main(argv=argv) 

必须加上“假”的说法站在对可执行文件的名称,如DBW的答案描述。

+0

试过这个,但没有生成报告 –

+0

@Matt:你确定吗?因为我在我的项目中使用了相同的代码片段,并且现在我只是改变了生成'xunit'报告,并且它已经在'nosetests.xml'下成功生成了!也许我失去了一些东西... – mouad

+0

是啊,我先试了一下,没有生成报告。尝试命令行,我得到了一个。对不起: -/ –

16

鼻子做了一些鬼鬼祟祟的第一个参数,所以它不被解析。我的鼻子包装确实是这样的:

import nose 
import sys 

argv = sys.argv[:] 
argv.insert(1, "--with-xunit") 
nose.main(argv=argv) 

作为奖励,这可以让你的程序的客户端使用鼻参数来控制其行为!

+0

它的工作原理。谢谢。 – KobeJohn

+1

我相信这是更正确的答案。关于鼻子被第一个论证偷偷摸摸的观点是非常重要的一点。 – munk

+5

鼻子不是鬼鬼祟祟的:)关键是'argv'列表总是以可执行文件的名字开头。因此,当你说'argv = ['--with-xunit']'时,你把可执行文件的名字设置为'--with-xunit',并且不传参数。为了解决这个问题,使用'argv = ['fake','--with-xunit']' – Timur

相关问题