119

我尝试使用norecursedirssetup.cfg 中的选项来告诉 py.test 不要从某些目录收集测试,但它似乎确实忽略了它。

[tool:pytest]
norecursedirs=lib/third

当我跑步时,py.test我确实看到它是如何从内部获得测试的lib/third

4

8 回答 8

115

py.test --ignore=somedir为我工作

于 2017-01-30T16:00:09.227 回答
45

如果您有多个具有不同父级的目录,则可以指定不同的--ignore参数:

py.test --ignore=somedir --ignore=otherdir --ignore=etcdir

  • 新选项:--ignore 将阻止收集指定路径。
    可以多次指定。
于 2019-02-07T10:43:42.780 回答
28

我解开了这个谜团:如果在可能的配置文件( 和 )之一中找到 pytest 部分pytest.initox.inipytestsetup.cfg将不会查找任何其他部分,因此请确保在单个文件中定义 py.test 选项。

我建议使用setup.cfg.

于 2012-06-20T13:19:39.893 回答
22

您可以使用

py.test -k 'not third'

排除所有“第三”目录内容。

于 2014-07-08T06:50:36.693 回答
13

就我而言,问题是缺少通配符。以下对我有用:

[tool:pytest]
norecursedirs = subpath/*

而只是norecursedirs = subpath没有。

于 2019-10-09T14:20:44.170 回答
12

norecursedirs应该管用。检查您是否有 pytest.ini 或其他 setup.cfg 文件。你怎么调用py.test

于 2012-06-20T12:17:39.663 回答
3

如果您使用 setup.cfg,则必须[tool:pytest]按照http://doc.pytest.org/en/latest/example/pythoncollection.html使用

# pytest.ini 的内容
# 也可以在 tox.ini 或 setup.cfg 文件中定义,尽管 setup.cfg 文件中的部分
# 名称应该是“tool:pytest”

于 2017-02-27T14:37:59.697 回答
3

要使用pytest.ini(推荐,除非您tox在这种情况下使用tox.ini会有意义),请pytest使用pytest -c pytest.ini.

为了防止我的样品not_me_1.pynot_me_2.py测试或掉毛,我pytest.ini的如下:

[pytest]
addopts = --ignore-glob=not_me_*

[pycodestyle]
ignore = not_me_* ALL

于 2020-11-03T19:40:14.867 回答