【问题标题】:Can vscode run pytests at the folder level instead of just running all tests or only a single test?vscode 可以在文件夹级别运行 pytest 而不是只运行所有测试或只运行单个测试吗?
【发布时间】:2020-12-06 00:53:52
【问题描述】:

我的项目结构如下所示:

├── myproject
├── conftest.py
├── pytest.ini
└── tests
    ├── fixtures
    ├── integration
    └── unit

在 pytest.ini 我有这个:

[pytest]
testpaths = tests/unit
project_name = myproject

90% 的时间我只想运行单元测试。我不想经常运行集成测试,因为它们需要更长的时间并且比单元测试更不安全,因为它们实际上会做一些事情

所以我把它们放在另一个文件夹中,将 unit 设置为默认文件夹,每当我想运行它们时,我就这样做:py.test tests/integrationpy.test tests 运行所有单元和集成测试。我避免使用 pytest 注释,因为我的需求很简单,而且使用两个文件夹似乎可以减少配置开销。

这对我来说非常有效,但现在我想利用 vscode 的 pytest 支持。它只是在“单元”文件夹中获取测试,这一定意味着它是从pytest.ini 读取的。我将pytest.ini 更改为只有顶级“测试”文件夹,vscode 找到了它们。

但是 vscode 似乎没有办法只运行一组测试(通过它的文件夹)。例如,我不知道如何在测试窗口中运行“单元”测试:

那么我如何让 vscode 默认运行所有单元测试,并且还可以选择运行集成测试ad hoc

是否可以有多个运行配置进行测试?有一个python.testing.cwd 参数,有没有办法我可以有两个测试运行配置并将 python.testing.cwd 设置为每个不同的值,然后从 vscode 测试窗口中选择我想要运行的一个?

【问题讨论】:

    标签: python visual-studio-code pytest


    【解决方案1】:

    我真的很喜欢能够在文件夹级别运行测试的功能,右侧有一个小播放按钮(它是如何在模块级别执行的)。

    作为一种糟糕的解决方法,我只是在需要时添加字段以忽略配置(工作区或其他)中的特定测试。

        "python.testing.pytestArgs": [
            "--ignore=integration",
        ],
    

    【讨论】:

    • 最近的更新中似乎包含了这个功能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    相关资源
    最近更新 更多