【问题标题】:Python nosetests: how to access cmd line options? Namely `--failed`Python 鼻子测试:如何访问 cmd 行选项?即`--失败`
【发布时间】:2014-09-10 03:24:59
【问题描述】:

运行中:Windows 7、python 3.4 和 2.7

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

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

如何从插件内部访问nosetest 的命令行选项?选项存储在什么变量中?

我的最终代码将如下所示:

 if <--failed option was invoked with nosetests command>: 
     do something
 else:
     do something different

替换&lt;&gt; 中的内容的正确代码是什么?

【问题讨论】:

    标签: python testing command-line-arguments nosetests args


    【解决方案1】:

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

    from sys import argv as arguments
    
    if "--failed" in arguments :
        do_something()
    else :
        do_something_else()
    

    当您导入sys 时,您可以访问sys.argv

    【讨论】:

    • 到目前为止似乎有效。我曾认为,如果从命令行调用模块本身,则模块只能以这种方式访问​​ cmd 争论。在这种情况下,批处理文件正在调用 nosetests,而后者正在调用 plugin.py,我曾假设 cmd args 被卡在靠近原始 cmd ln 调用的位置。
    【解决方案2】:

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

    import sys
    
    sys.argv #this is a list of args sys.argv[0] is the program itself
    

    原来如此

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

    【讨论】:

      猜你喜欢
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多