Python测试:如何访问cmd行选项?即`--失败`
运行:Windows 7、python 3.4和2.7 在我的一个nosetests插件(将测试数据发布到网站的插件)中,我需要确定测试是使用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的命令行选项?选项存储在
--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调用的较高位置。