【问题标题】:nosetests discover code in "_test" folder鼻子测试在“_test”文件夹中发现代码
【发布时间】:2014-05-12 18:11:32
【问题描述】:

我正在使用鼻子测试来发现和运行我的所有测试代码。我想将我所有的测试代码放在一个名为“_test”的文件夹中,但是使用默认设置,nosetests 不会在这个文件夹中发现我的测试代码。

我发现您可以告诉nosetests 使用正则表达式寻找替代模式来发现您的测试。出于某种原因,我无法使用以下划线开头的文件夹名称来让鼻子测试工作。有什么想法吗?

【问题讨论】:

    标签: python unit-testing python-2.7 nosetests


    【解决方案1】:

    你不能。

    nose 的默认行为是忽略 setup.py 以及所有以下划线或句点开头的文件或文件夹。增加鼻子输出的详细程度明确地表明了这一点:

    $ nosetests --verbosity=3
    nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
    

    虽然可以使用--ignore 选项覆盖此默认行为文件 - 例如,通过将其设置为不可能发生的模式:

    $ nosetests --verbosity=3 --ignore='^$'
    

    ...由于a hardcoded exclusion of initial underscores,此不适用于目录

                if is_dir:
                    # this hard-coded initial-underscore test will be removed:
                    # http://code.google.com/p/python-nose/issues/detail?id=82
                    if entry.startswith('_'):
                        continue
    

    正如您从评论中看到的那样,鼻子开发人员打算在某个时候取消此限制,但由于评论中链接的问题在 2008 年被关闭为“已修复”,因此该计划似乎已被搁置。

    【讨论】:

    • 谢谢,这解释了为什么它被排除在外
    • @JustMe 我不确定这是否解释了这种行为,因为设置是通过传递--ignore-filesconfigure() 方法中设置的。虽然我目前不知道为什么它不选择_test 目录。
    • @alecxe 找到了罪魁祸首并进行了相应更新 - 查看源代码的新链接 :-)
    • @ZeroPiraeus 哦,不错 +1 :) 可能我们需要重新打开 issue 或创建一个新的。很好的发现!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多