小编Sin*_*yen的帖子

Pytest 项目运行速度非常慢

我的 pytest 设置运行得很慢,尤其是在收集阶段。

所以我为我的 Django 项目建立了一个 pytest 设置,每个 Django 应用程序的测试文件都位于它自己的文件夹中,即树看起来如下

root
|
+--a
|  |
|  +--tests
|       |
|       +--conftest.py
|       +--testAa.py
|       +--testBa.py
+--b
|  |
|  +--tests
|       |
|       +--conftest.py
|       +--testAb.py
|       +--testBb.py
...
pytest.ini
Run Code Online (Sandbox Code Playgroud)

pytest.ini 文件指定在何处查找测试并具有以下内容

[pytest]
DJANGO_SETTINGS_MODULE = project.project.settings.test
python_files = tests.py test_*.py *_tests.py
addopts = --reuse-db
Run Code Online (Sandbox Code Playgroud)

对于tests文件夹中的每个应用程序,我都有一个名为contest.py. 此文件创建一组在测试文件中多次使用的对象。例如,如果类的对象A被多次使用,则竞赛会创建该变量一次,并且测试使用此 conftest 作为输入。每个 conftest 都有装饰器@pytest.fixture(scope="function"),测试有装饰器@pytest.mark.django_db

我不认为加载时间是由 conftests 或上一段中讨论的装饰器引起的,而是由pytest.ini我提供的树结构和文件引起的。对于什么是好的结构,是否有任何规则?正如我所说,收集测试的加载时间非常长。更准确地说,我有大约 80 个测试,收集它们大约需要 40 秒。运行它们都需要额外的 20。

python pytest python-3.x

8
推荐指数
2
解决办法
5285
查看次数

标签 统计

pytest ×1

python ×1

python-3.x ×1