问题标签 [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 投票
2 回答
1980 浏览

pytest-django - 如何使用 pytest-django 设置 postgres 数据库?

我希望 pytest-django 在创建测试数据库时安装 Postgres 扩展。我一直在使用 conftest.py 试图让它工作,但我被卡住了。

我的 conftest.py 位于我的项目的顶层(与 manage.py 相同的目录),并且包含:

但是当我运行它时,我得到:

0 投票
2 回答
2055 浏览

django - pytest-django:设置用户权限

我使用 pytest 3.0.6 和 pytest-django 3.1.2 为 Django 开发一个库。我有这个非常简单的测试失败,我不明白发生了什么:

以防万一,测试的结果是:

来自 tox.ini 的配置块:

以及来自测试设置的数据库配置:

我究竟做错了什么 ?

0 投票
0 回答
568 浏览

python - 基本的 django-pytest 测试

即使只是学习 django 和 testwriting,所以我需要一点确认。我想知道以下测试是它的“正确”拼写。

测试视图.py

表格.py

这是模型

感谢您的帮助和建议。

0 投票
3 回答
1422 浏览

pytest - 为什么 pytest-xdist 让我的测试运行得更慢,而不是更快?

我正在将一个 ~2000 方法测试套件从鼻子移植到pytest,因为django-nose不能很好地支持并行化。将鼻子换成 pytest 似乎效果很好,并且在添加python_files它之后pytest.ini发现几乎所有我们的测试。

最大的缺点是当我运行时-n 4,测试套件变得比没有-n标志慢。在整个套件的约 10% 子集上运行,它似乎是大约 20-30% 的平坦减速,尽管我所采用的时间相当嘈杂。作为开销,这在一定程度上是有意义的,但无论我选择多少进程,时间都不会下降。

运行--durations=20显示每个设置阶段每个进程都需要几秒钟的时间,并且每个其他测试都会稍微变慢。

-vvv列出运行时的测试,输出几乎完全序列化:

除了少数例外,整个日志几乎总是“开始测试,从工作人员那里获得通过”。这让我相信有些东西正在序列化测试,但我对什么感到困惑。

我尝试禁用除 pytest 本身、pytest-xdist 和 pytest-django 之外的所有 pytest 插件,没有任何变化。

0 投票
1 回答
1519 浏览

python - 如何使用带有数据的数据库在 django 中运行测试?

我想使用来自 postgres localhost 数据库的数据(已经加载的数据)来测试我的视图。我将 tox 与 pytest 和 pytest-django 一起使用。

我的问题:如何设置/连接到本地数据库以获取所有数据模型模式和数据本身?或者也许使用 factory_boy 更好?或者从 .sql 脚本加载整个数据(如果是,如何)?

我的测试示例:

但我得到的不是状态码 200,而是 404,这表明测试数据库中没有数据。但是当我吃午饭runserver并去那个视图时,('localhost:8000/foo/bar/123/')我会得到状态 200 和带有一些数据的 html 网页。

请帮忙!


我在用着:

  • Django==1.7.11
  • pytest==3.0.6
  • pytest-django==3.1.2
  • 毒物==2.6.0
0 投票
1 回答
4877 浏览

selenium - pytest.fixture 函数不能使用 ``yield``。而是编写并返回一个内部函数/生成器,并让消费者调用并对其进行迭代。:

我正在尝试使用 pytest 为我的 Django 项目运行 selenium 并执行夹具设置/拆卸。

我尝试遵循最佳实践yield但出现错误:

你知道为什么它不工作吗?

然后后来我使用了另一个运行良好的代码

但不推荐这种方法:

这种方法仍然得到完全支持,但从 2.10 开始建议使用 yield,因为它被认为更简单,更好地描述了自然代码流。

版本注意事项:

0 投票
1 回答
437 浏览

python - 在这个测试用例中如何避免访问数据库

如何使用 Factory 对象覆盖 django 模型以避免访问数据库。

模型.py

实用程序.py

所以为了测试,我创建了一个 ApplicationType 工厂

测试.py

因此,您将如何编写一个测试来避免在ApplicationType.objects.get()代码中间的查询中命中数据库?我可以将“模型”作为参数传递给函数吗?这会是一个好的设计吗?

您可以自由地为应用程序/功能提供替代结构,特别是允许在这种情况下进行更好的测试。

我正在运行 Python3.5、pytest-django 和 factory_boy

0 投票
1 回答
1980 浏览

python - Django pytest:运行测试用例后清除数据库

我有一个测试(django pytest)需要操作数据库中的对象。问题是在测试之后,数据库是“脏的”,其他测试失败。我看到了一些关于 TransactionTestCase 的东西,但我不明白它是如何与 django 测试一起工作的。

这是我当前代码的一个简单示例:

更新:第二次尝试:我读到TestCase应该使用事务并为每个测试回滚它们。不为我工作:

结果(有趣的部分):

这意味着在 test_a 结束时没有回滚事务。

0 投票
1 回答
121 浏览

django - 如何绕过语言请求

在我的每个视图中,我都有一个返回浏览器请求语言代码的函数。但是当我运行我的单元测试时,我的视图出现了错误:

视图.py

测试:

由于我不使用浏览器,如何绕过语言请求

0 投票
1 回答
375 浏览

django - 在以 windows 为主机的 vagrant ubuntu vm 上运行 pytest。导入文件不匹配

我想这是一个非常具体的情况,但我会提出这个问题,因为我没有找到相关的答案并且可能对其他人有用。

情况是这样的:

  • Windows 是主机操作系统。
  • 有一个 Ubuntu VirtualBox(用 vagrant 创建)。

  • 我的 django 项目文件夹在 windows 和 ubuntu 之间共享。

  • 我在 ubuntu 和 windows 上的 virtualenv 上都安装了 pytest(通过 pytest-django)。

  • 如果我pytest从 windows virtualenv 运行命令,测试运行得很好
  • 但是在 ubuntu vm 终端中,我不能只运行pytest命令,因为我收到错误:当前未安装程序 'pytest'。
  • 我可以用python -m pytest. 但在这种情况下,我得到import file mismatch错误:

=========================错误=======================

信息很清楚,但我不知道如何克服这个问题。

我使用 python 2.7.9 并且没有pycache文件夹(也没有 ant .pyc 编译文件)。