如何告诉py.test跳过某些目录?

时间:2012-06-20 09:57:13

标签: python unit-testing pytest

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

[tool:pytest]
norecursedirs=lib/third

当我运行py.test时,我确实看到它是如何从lib/third内部进行测试的!

8 个答案:

答案 0 :(得分:42)

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Pmanager.Models; using RBravoDLL; using System.Globalization; using Resources; using Pmanager.Helpers; namespace Pmanager.Controllers { [Authorize] public class GroupController : DefaultController { private Group m_group; public Group p_group { get { if (m_group == null) { m_group = new Group(); } return m_group; } set { m_group = value; } } [HttpPost] [AllowAdminOperationsOnly] public ActionResult NewGroup(Group _group) { try { int id_group = 0; if (ModelState.IsValid) { id_group = p_group.NewGroup(_group); } else { ThrowErrorMessages(); } return Json(new { status = "success", title = @Resources.Global.success, text = @Resources.Groups.success_creating_group, messageType = "success", id_group = id_group }, JsonRequestBehavior.AllowGet); } catch (Exception err) { return ErrorHelper(@Resources.Global.error, @Resources.Groups.error_creating_group, err.Message); } } } } 为我工作

答案 1 :(得分:22)

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

我建议使用setup.cfg

答案 2 :(得分:13)

您可以使用

py.test -k 'not third'

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

答案 3 :(得分:11)

norecursedirs应该有效。检查您是否有pytest.ini或其他setup.cfg文件。你是如何调用py.test的?

答案 4 :(得分:4)

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

使用Num1 Num2 Num3 Num4 Num5 9 6 7 2 3 0 1 2 7 6 1 3 8 9 10
  

#testtest.ini的内容   #也可以在tox.ini或setup.cfg文件中定义,但部分为   setup.cfg文件中的#name应为“tool:pytest”```

答案 5 :(得分:4)

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

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

  
      
  • 新选项:--ignore将阻止收集指定的路径。
      可以多次指定。
  •   

答案 6 :(得分:0)

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

[tool:pytest]
norecursedirs = subpath/*

而只有norecursedirs = subpath没有。

答案 7 :(得分:0)

要使用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