问题标签 [pytest-django]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
268 浏览

django - django 中的 py.test 和上下文管理器

我正在尝试在测试中使用以下上下文管理器:

我得到以下结果:

我看了看,pytest.yield_fixture但我没有机会。请问有什么见解吗?

0 投票
2 回答
1933 浏览

python - Django 测试客户端与 django-pytest

我正在使用 django-pytest 来测试 Django Rest Framework API。我有一个看起来像这样的测试模块:

当我运行测试时,我得到:

如果我检查使用调试器返回的数据,我会看到它是在上一个测试中创建的站,即使数据库似乎是空的:

我不知道 pytest 是否在测试之间清除数据库。我怀疑正在使用多个数据库,但我的设置中只配置了一个。我虽然可能有一些缓存,但我阅读了 Django 测试客户端文档并没有找到太多。我会错过什么?

0 投票
1 回答
4047 浏览

python - django-pytest setup_method 数据库问题

我在 Ubuntu 14.04 上进行了以下设置:

  • 蟒蛇2.7.6
  • django 1.7 [虽然我也用 django 1.9 重现了相同的行为]
  • pytest-django 2.8.0 [也用 2.9.1 测试过]
  • pytest 2.7.2 [也用 2.8.3 测试过]

以及以下测试代码:

  1. 尽管该类被标记为使用 django 数据库,但在构造函数中创建的数据到达主(生产)数据库(名称取自 settings.py)

  2. django_db将装饰器放在上面setup_method没有任何区别

  3. 在 setup_method 中创建的此数据保留在主数据库中,不会按应有的方式回滚,如果在test_case方法中进行数据创建调用,则不会回滚

  4. 当测试单独运行时会发生这种行为。在测试套件中运行它时,setup_method db 调用失败:失败:不允许数据库访问,django_db尽管装饰器明显存在,但使用标记启用(这意味着此错误消息不是 100% 受信任的顺便说一句)。

pytest 是一个很棒的框架,如果数据库调用发生在django_db标记的测试用例方法中,那么 django-pytest 就可以很好地工作。

看起来像 , 等特殊的 pytest 方法中不应该出现任何 db 交互setup_methodteardown_method尽管文档没有说明任何内容:

https://pytest-django.readthedocs.org/en/latest/database.html

我在 Django 1.7 和 1.9(最新稳定版)中都得到了这种行为。

这是整个测试模块的链接:https ://github.com/zdenekmaxa/examples/blob/master/python/django-testing/tests/pytest_djangodb_only.py

0 投票
1 回答
619 浏览

python - Django 测试方法,夹具还是模拟?

在我的项目中,我使用 pytest 为我的程序编写单元测试用例。但后来我发现我的程序中有很多db操作,ORM的东西。

我知道单元测试应该运行得很快,但是单元测试和自动集成测试除了快速之外有什么不同。

我应该只使用数据库夹具而不是模拟它们吗?

0 投票
0 回答
643 浏览

python - django-pytest liveserver settings issue

when using django-pytest along with the live server, according to the documentation, the live server setting can be done in these ways:

  • in the settings *.py such as: DJANGO_LIVE_TEST_SERVER_ADDRESS="localhost:12588"

  • in the pytest pytest.ini file: DJANGO_LIVE_TEST_SERVER_ADDRESS="localhost:12588" (tried as well DJANGO_LIVE_TEST_SERVER_ADDRESS=localhost:12588)

in these both cases, the value was not taken into account and still the first source code defined default localhost:8081 was used.

what worked was following (from CLI):

I am using Django 1.7 and platform linux2 -- Python 2.7.6, pytest-2.8.4, py-1.4.31 [pytest] plugins: django-2.9.1

Does anyone know why the other supported ways of setting are ignored?

0 投票
1 回答
425 浏览

django - pytest-django 不会发现我的测试,除非显式调用

我刚开始使用 Django,并且只在几个项目中使用过 PyTest,但我都喜欢它们。

所以我很高兴发现pytest-django插件,它看起来非常简单易用。

根据Django 教程的第 5 部分(我一直在研究),我在mysite/polls/tests.py. 这些可以通过内置的测试运行器完美运行。

所以,现在安装了pytestpytest-django,当我py.test从项目根目录中运行时,或者py.test polls我什么也得不到:

收集了 9 个项目

当我用 明确调用我的文件时py.test polls/tests.py,我得到了丰富多彩的预期输出:

在此处输入图像描述

我错过了什么?我已经按照字母的设置,插件的基本用法文档证明一个简单的py.test应该自动找到我的测试。为什么没有被发现?

0 投票
1 回答
679 浏览

travis-ci - Travis 在使用 pytest 时从 node-sass 中的打印语句中抛出 Python 语法错误

在使用pytest-django测试 Django 应用程序时,我遇到了 Travis 的一个奇怪问题。我所有的测试都在本地通过,显然也在 travis 上通过,但无论我做什么,每次都会node-sass出错node-gyp

我的测试都没有使用任何节点模块(如果可能的话)。我确实使用了具有 gulp-sass 的 gulp,但是在测试运行之前运行它似乎工作正常。

这是错误输出:

0 投票
1 回答
1309 浏览

python - 运行py.test时如何保留数据库数据?

我想测试我的查询数据库功能。

但它失败了。

该函数没有从 DB 获得任何结果。

我检查了数据库数据,没有看到任何记录。(例如用户tester@example.com

如何重写我的代码进行测试?

或者如何将数据保存在数据库中?

谢谢,

0 投票
1 回答
267 浏览

python - Python将通用代码保存在文件中

我有一些在我所有的 PyTest 中使用的通用代码。我想将完整的代码保存在任何文件中并在运行时加载它。可以使用 Python 吗?

例如:

0 投票
1 回答
30 浏览

pytest - 如何确保每次运行 pytest 测试用例时都运行特定的代码片段?

在 test_a 和 test_b 测试用例运行之前,我需要调用 do_setup() 。我正在使用 pytest-django 框架。

请帮忙。

提前致谢