gpt4 book ai didi

python - pytest 基础知识。在目录中运行测试

转载 作者:行者123 更新时间:2023-12-05 04:00:54 26 4
gpt4 key购买 nike

我使用新的 virtualenv 创建了一个简单的新项目。 requirements.txt 只有 pytest 就这样。

.
├── requirements.txt
└── tests
├── __init__.py
└── sample_tests.py

sample_tests.py:

import pytest

@pytest.mark.unit
def test_a():
assert 1 + 1 == 2

如果我用 python 测试文件名运行 pytest,它工作正常:

vex --path ~/.virtualenvs/pytestdemo pytest tests/sample_tests.py 

但是,以下调用均无效。他们都没有看到测试并输出 collected 0 itemsno tests ran:

vex --path ~/.virtualenvs/pytestdemo pytest tests
vex --path ~/.virtualenvs/pytestdemo pytest tests/
vex --path ~/.virtualenvs/pytestdemo pytest

vex --path ~/.virtualenvs/pytestdemo python -m pytest tests
vex --path ~/.virtualenvs/pytestdemo python -m pytest tests/
vex --path ~/.virtualenvs/pytestdemo python -m pytest

在这个简单的场景中,我只有一个测试文件和一个测试,但在我的实际应用程序中,我有很多测试,我想要一个简单的调用来运行所有这些测试。我已将我的场景缩小到这个 super 简单的孤立示例,我想让非常基本的测试调用正常工作。

我已经仔细阅读了文档和入门指南。我试过使用(和不使用)自定义 pytest.ini。显然,我尝试通过 pytestpython -m pytest 调用。

最佳答案

默认情况下,pytest 仅在名为 test_*.py*_test.py 的文件中发现测试,来自 docs .这就是当您直接将文件名作为参数传递时它会在您的文件中找到测试的原因:

vex --path ~/.virtualenvs/pytestdemo pytest tests/sample_tests.py 

并且无法在其他调用中找到它们。因此,您的选择是:

  1. 更改文件名以适应其中一种默认收集模式。
  2. Change standard test discovery.

关于python - pytest 基础知识。在目录中运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com