我在Ubuntu Linux上使用NOSE 1.3.4版本,使用Python 2.7。我无法获得NOSE接受的有效命令行。我反复得到这个错误:
Traceback (most recent call last): File "bin/nosetests", line 86, in sys.exit(nose.run_exit()) File "/home/testrunner/.virtualenvs/bqt/parts/nose/nose/core.py", line 121, in __init__ **extra_args) File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__ self.parseArgs(argv) File "/home/testrunner/.virtualenvs/bqt/parts/nose/nose/core.py", line 145, in parseArgs self.config.configure(argv, doc=self.usage()) File "/home/testrunner/.virtualenvs/bqt/parts/nose/nose/config.py", line 346, in configure self.plugins.configure(options, self) File "/home/testrunner/.virtualenvs/bqt/parts/nose/nose/plugins/manager.py", line 288, in configure cfg(options, config) File "/home/testrunner/.virtualenvs/bqt/parts/nose/nose/plugins/manager.py", line 99, in __call__ return self.call(*arg, **kw) File "/home/testrunner/.virtualenvs/bqt/parts/lib/src/f5test/noseplugins/extender/__init__.py", line 29, in simple result = meth(*arg, **kw) File "/home/testrunner/.virtualenvs/bqt/parts/lib/src/f5test/noseplugins/testconfig.py", line 109, in configure exec('config%s = %s' % (ns, val)) File "", line 1, in **KeyError: 'stages'**
我尝试在BASH脚本中指定命令行(这是我最终需要它的工作方式)并直接从命令行指定相同的结果。我已经验证我的.yaml参数是正确的,并且我的测试路径是正确的。
以下是我尝试过的不同命令行,所有命令行都有相同的错误。看起来像某种"或者'扩张问题,但我无法弄清楚原因。
1) bin / nosetests -sv --log-config = logging.conf --console-redirect --tc' stages.enabled:" 0"' -A'排名> 0和等级< 11和模块' --tc-file = config / users / mgmt.yaml tests / version_compare.py
2) bin / nosetests -sv --log-config = logging.conf --console-redirect --tc stages.enabled:0 -A' rank> 0和等级< 11和模块' --tc-file = config / users / mgmt.yaml tests / version_compare.py
3) bin / nosetests -sv --log-config = logging.conf --console-redirect --tc stages.enabled:" 0" -A'排名> 0和等级< 11和模块' --tc-file = config / users / mgmt.yaml tests / version_compare.py
4) bin / nosetests -sv --log-config = logging.conf --console-redirect --tc stages.enabled:0 --tc-file = config / users / mgmt.yaml tests / version_compare.py
我已删除所有可能的参数以消除变量,但没有运气。我无法找到一个NOSE命令行参数来让它回显出它认为命令行的内容。
如果可以,请帮忙。我花了很多时间试图解决这个问题。
答案 0 :(得分:1)
首先,尝试使用--tc-exact
代替--tc
(后者似乎将stages.enabled
分成两个单独的键。)
另外,我在代码中看到了这样的评论:
# BUG: Breaks if the config value you're overriding is not
# defined in the configuration file already. TBD
因此,请检查stages.enabled
config/users/mgmt.yaml
希望有所帮助!