跳转到主要内容

assertNumQueries的扩展,可以记录执行过的查询,并在未来的运行中显示差异。

项目描述

https://badge.fury.io/py/dj-test-queries.svg https://codecov.io/gh/PetrDlouhy/django-test-queries/branch/master/graph/badge.svg

assertNumQueries的扩展,可以记录执行过的查询,并在未来的运行中显示差异。它还会显示查询被调用的跟踪。

文档

完整文档位于 https://dj-test-queries.readthedocs.io

快速入门

安装 dj-test-queries

pip install dj-test-queries

NumQueriesMixin 应用到您的测试中,并像平常一样使用 assertNumQueries

from test_queries import NumQueriesMixin

class XYZTests(NumQueriesMixin, TestCase):
    def test_xyz(self):
        with self.assertNumQueries(3):
            xyz()

生成SQL日志记录

使用 TEST_QUERIES_REWRITE_SQLLOGS 环境变量运行测试以生成sqllog文件

TEST_QUERIES_REWRITE_SQLLOGS="true" manage.py test

test_views.XYZTests.test_xyz.sqllog 的文件将出现在您的 test_views.py 文件旁边的 sqllog 目录中。

如果您下次运行测试并且查询与之前不同,测试将打印出详细说明变化的输出,其中包括查询执行处的堆栈跟踪。您还可以将 *.sqllog 文件列入您的存储库以查看更改。

如果没有使用 TEST_QUERIES_REWRITE_SQLLOGS 环境变量执行测试,日志将创建为名为 test_views.XYZTests.test_xyz.sqllog 的文件,以便进行比较。

运行测试

代码真的能工作吗?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

开发命令

pip install -r requirements_dev.txt
invoke -l

致谢

用于渲染此包的工具

历史

0.3.0 (2024-05-16)

  • 将输出消息输出到错误报告并替换Django SQL输出

  • 在比较之前对查询进行排序

  • 将堆栈跟踪和其他信息存储在.sqllog.full_record文件中

0.2.2 (2023-08-26)

  • DDT 3.8.1的真正修复

0.2.1 (2023-08-24)

  • 移除DDT版本要求

0.2.0 (2023-08-15)

  • 针对DDT新版本的修复(在3.8.1 - 4.2.0中测试过)

  • 自动测试

0.1.0 (2023-04-21)

  • 在PyPI上的首次发布。

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分发

dj-test-queries-0.3.0.tar.gz (20.9 kB 查看哈希值)

上传时间

构建分发

dj_test_queries-0.3.0-py2.py3-none-any.whl (6.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持