【问题标题】:nosetests -h fails to run with errornosetests -h 运行失败并出现错误
【发布时间】:2011-05-15 01:19:02
【问题描述】:

我怀疑我未能正确安装鼻子测试。 我使用了 easy_install nose - 输出是

Searching for nose
Best match: nose 1.0.0
Processing nose-1.0.0-py2.7.egg
nose 1.0.0 is already the active version in easy-install.pth
Installing nosetests-script.py script to C:\Python27\Scripts
Installing nosetests.exe script to C:\Python27\Scripts
Installing nosetests-2.7-script.py script to C:\Python27\Script
Installing nosetests-2.7.exe script to C:\Python27\Scripts

所以看起来它安装得很好。但是当我运行nosetests -h

PS C:\Users\john\code\python> nosetests -h
Traceback (most recent call last):
  File "C:\Python27\Scripts\nosetests-script.py", line 9, in <module>
    load_entry_point('nose==1.0.0', 'console_scripts', 'nosetests')()
  File "C:\Python27\lib\site-packages\nose-1.0.0-py2.7.egg\nose\core.py", line 118, in __init__
    **extra_args)
TypeError: __init__() got an unexpected keyword argument 'exit'

我是否以某种方式错过了设置步骤?

【问题讨论】:

    标签: python nosetests


    【解决方案1】:

    很奇怪。在nose/core.py 中,TestProgram 构造函数调用父构造函数,如下所示:

    ...
    extra_args = {}
    version = sys.version_info[0:2]
    if version >= (2,7) and version != (3,0):
        extra_args['exit'] = exit
    unittest.TestProgram.__init__(
        self, module=module, defaultTest=defaultTest,
        argv=argv, testRunner=testRunner, testLoader=testLoader,
        **extra_args)
    

    unittest/main.pyTestProgram 的构造函数接受exit 参数:

    class TestProgram(object):
        ...
        def __init__(self, module='__main__', defaultTest=None, argv=None,
                        testRunner=None, testLoader=loader.defaultTestLoader,
                        exit=True, verbosity=1, failfast=None, catchbreak=None,
                        buffer=None):
            ...
    

    所以...我不知道这个错误是怎么发生的。您是否安装了更多版本的 Python?你的鼻子测试真的使用了正确的unittest Python 2.7 模块吗?您能否查看unittest\main.py(在您的C:\Python27 中的某个位置)并检查TestProgram 构造函数,它是否具有exit 参数?

    【讨论】:

    • 我使用easy_install pyunit 来获取我的单元测试——我所拥有的只是一个编译好的鸡蛋。 1.4.1 版本。我应该使用不同的方法来获取我的单元测试吗?
    • 好的,我在 C:\Python27\Lib\unittest 中找到了 unittest - 它也有 exit=True 参数。也许鼻子正在使用不同的,也许在 PyuNit 中?
    • PyUnit 是问题所在。我删除了 PyUnit egg,现在鼻子工作正常。 (使用已经存在的单元测试)
    猜你喜欢
    • 2014-11-04
    • 2019-08-31
    • 2022-01-10
    • 2018-07-04
    • 2018-02-24
    • 1970-01-01
    • 2012-09-24
    • 2022-07-18
    • 1970-01-01
    相关资源
    最近更新 更多