Python测试:如何访问cmd行选项?即`--失败`

Python测试:如何访问cmd行选项?即`--失败`,python,testing,command-line-arguments,nosetests,args,Python,Testing,Command Line Arguments,Nosetests,Args,运行:Windows 7、python 3.4和2.7 在我的一个nosetests插件(将测试数据发布到网站的插件)中,我需要确定测试是使用--failed选项运行还是不使用该选项。如果启用了--failed,则表示此测试第一次失败,并将再次运行以查看失败是否为侥幸。如果这是一个失败测试的重新运行,我需要将插件指向一些不同的行为,而不是第一次运行测试 换句话说,我想确定插件内部是否存在nosetests或nosetests--failed 如何从插件内部访问NoTest的命令行选项?选项存储在

运行:Windows 7、python 3.4和2.7

在我的一个nosetests插件(将测试数据发布到网站的插件)中,我需要确定测试是使用
--failed
选项运行还是不使用该选项。如果启用了
--failed
,则表示此测试第一次失败,并将再次运行以查看失败是否为侥幸。如果这是一个失败测试的重新运行,我需要将插件指向一些不同的行为,而不是第一次运行测试

换句话说,我想确定插件内部是否存在
nosetests
nosetests--failed

如何从插件内部访问NoTest的命令行选项?选项存储在哪个变量中

我最终的代码如下所示:

 if <--failed option was invoked with nosetests command>: 
     do something
 else:
     do something different
如果:
做点什么
其他:
做些不同的事情

什么是正确的代码来替换
中的内容?

获取命令行参数的最简单方法是系统库

导入系统 sys.argv#这是args的列表sys.argv[0]是程序本身 是的

if sys.argv[1] == '--failed':

我不完全理解,但是命令行参数部分很简单。只需使用以下代码:

from sys import argv as arguments

if "--failed" in arguments :
    do_something()
else :
    do_something_else()

当您导入时,您可以访问

,目前看来这是可行的。我曾经认为,如果模块本身是从命令行调用的,那么模块只能通过这种方式访问cmd参数。在这种情况下,当批处理文件调用
nosetests
调用
plugin.py
时,我假设cmd args被卡在靠近原始cmd ln调用的较高位置。