在Python测试脚本中传递选项

Mat*_*t W 12 python nose

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

dbn*_*dbn 17

Nose在第一个参数上做了一些偷偷摸摸的事情,所以它没有被解析.我的鼻子包装做了这样的事情:

import nose
import sys

argv = sys.argv[:]
argv.insert(1, "--with-xunit")
nose.main(argv=argv)
Run Code Online (Sandbox Code Playgroud)

作为奖励,这允许程序的客户端使用Nose参数来控制其行为!

  • 鼻子不是偷偷摸摸:)重点是`argv`列表总是以可执行文件的名称开头.因此,当你说`argv = [' - with-xunit']`时,你可以将可执行文件的名称设置为`--with-xunit`,并且不传递任何参数.要解决这个问题,请使用`argv = ['fake',' - with-xunit']` (5认同)

mou*_*uad 8

像这样:

import nose

argv = ['fake', '--with-xunit']
nose.main(argv=argv)
Run Code Online (Sandbox Code Playgroud)

必须添加"假"参数以代表可执行文件名,如dbw的答案中所述.

  • 我想我知道为什么这不起作用.Nose不使用argv的第一个参数来配置自身.这可能也会导致并行执行问题? (2认同)