问题标签 [django-tests]

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 投票
0 回答
242 浏览

django - Django 测试:数据库中的更改字段

我正在尝试为我的应用程序运行测试,它给出的消息就像

哦,这是因为我已经改变了CharField使用IntegerFieldSQL 语法(虽然迁移是为了这个改变而创建的)

因此,在运行test命令时,创建测试数据库时失败。

有没有办法解决这个问题?

更新:现在我正在跳过使用第三方应用程序使用 http s://pypi.python.org/pypi/django-test-without-migrations/运行迁移的部分

现在正在创建测试表,但缓存表失败

0 投票
2 回答
466 浏览

python - Django 测试中的异常错误错误地认为实例不存在

我有非常定制的 Django 应用程序,它检查用户是否可以将 ForeignKey 更改为某些值。

在这种情况下,aUser属于 aWorkgroup并且 anItem也可以属于 a Workgroup,因此,当 a 生成Useran时Item,它们只能将其放入Workgroup它们所属的 s 中。使事情复杂化Item的是父类,因此“Item”的类型很多。

目前我有一个自定义管理表单设置来检查这个:

该测试的重要部分是:

但有时(并且间歇性地),当我运行测试套件时,我post会以这个表单来测试保存内容,我得到这个错误:

由于这种情况的性质,如果成功发布,页面应该重定向,如果不是这种情况,我有一些代码只会吐出响应 HTML,在这些情况下,我得到了这个:

但是,当此错误触发时,并非每种项目类型都会抛出错误,只有一两个。但是,如果您查看该select字段,带有id(或pk)的工作组17就在那里!另外,当我重新运行测试套件时,它会很好(有时在一些“热身”之后)。我也从未在非测试站点中遇到过这种情况。

我认为这可能是由于 Django 测试保存在事务中的方式?我开始对此感到恼火,因为它曾经很断断续续,但现在它变得越来越频繁 - 但仍然是随机的。


所以这仍然失败,我可以说什么不能解决它:

  • 使用基于文件的 SQLite 实例而不是内存中的实例
  • 使用 PostgreSQL 进行测试
  • 从 TestCase 切换到 TransactionTestCase

我知道的:

  • 测试在开发服务上运行良好,但相同的测试在 Travis-CI 上失败
  • 它不仅是对测试 Web 客户端的调用,而且还有其他一些查询集工作
  • 它可能是基于事务的,但我不确定。

对于超级好奇的人来说,这是我试图消除但无法消除的问题


编辑:2015-06-11

我已经建立了一个失败的、独立的例子!!SQLite 始终有效,Postgres 始终失败。

似乎由于某种原因,这段代码一直很糟糕:

事实上,调用管理changelist视图总是会导致任何后续管理页面在尝试保存时在 Postgres 上失败,因为Workgroup不再出现在查询集中。现在,这是为什么呢?

完整代码:

0 投票
1 回答
5264 浏览

django - Django 测试:--keepdb 是否重置测试期间所做的更改?

根据有关测试的 Django 文档,该--keepdb标志将保留测试数据库以供将来运行。

https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---keepdb

为了清楚起见,测试(即:)对数据库所做的任何更改是否object.save()会自动重置?还是需要从测试中撤消这些更改?

0 投票
1 回答
1201 浏览

python - Django:保持 setUpTestData DRY

我一直很享受 Django 1.8 中的 setUpTestData 和 --keepdb 带来的便利!

但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法放在一个位置,并让我的每个测试文件都引用它,这样我就不必将更改复制/粘贴到每个单独的测试文件中。

我对如何解决这个问题有点困惑,特别是关于似乎阻止我从另一个文件导入我的 setUpTestData 函数的类方法。有人能帮我吗?提前谢谢!

当前测试文件

设置数据文件

0 投票
1 回答
165 浏览

django - django 测试上传图片

我想测试用户注册,但我无法测试图像这是我的测试:

测试.py

我得到代码 400(错误请求),但没有照片我的测试通过

所以我想测试用户照片,其他任何东西都可以正常工作。谢谢你的帮助

0 投票
3 回答
2675 浏览

python - Django断言响应包含可能的字符串列表之一

我正在使用内置测试工具为我的 Django 应用程序编写测试。现在,我正在尝试为显示用户关注者列表的页面编写测试。当用户没有关注者时,页面会显示一条从字符串列表中随机挑选的消息。举个例子:

所以现在我想编写一个测试,断言响应包含这些字符串之一。如果我只使用一个字符串,我可以使用self.assertContains(request, "You don't have any followers."),但我被困在如何编写具有多种可能结果的测试。任何帮助,将不胜感激。

0 投票
0 回答
193 浏览

python - django rest框架中的可重用权限测试

我正在为一个安静的服务(使用DRF)编写测试,我想要在权限视图更改时不需要修改的测试。

例子:

  • view.py

    class List(generics.ListAPIView): permission_classes = (IsAuthenticated, ) queryset = List.objects.all() serializer_class = ListSerializer

  • test.py

    /li>

如果运行测试

但如果permission_classes = (AllowAny, )

运行测试

那么,当权限更改时,我如何将测试编码为无需重新编码?

谢谢

0 投票
2 回答
123 浏览

python - 应该测试 Django 模型吗?

我应该测试 Django 模型吗?到目前为止,我一直在为视图编写测试。还有什么可以而且应该测试的?

0 投票
2 回答
616 浏览

python - 将 django.test.LiveServerTestCase 的 live_server_url 与另一个字符串连接时出现 TypeError

每当我尝试基于 构造字符串时self.live_server_url,我都会收到 pythonTypeError消息。例如,我尝试了以下字符串结构(下面的表格 1 和 2),但我遇到了相同的TypeError. 我想要的字符串是"/lists"附加的 Live Server URL。注意:实际测试确实成功创建了服务器,我可以手动访问服务器,更具体地说,我可以手动访问我尝试以编程方式构建的确切 URL(例如'http://localhost:8081/lists')。

TypeErrors 出现在这些字符串结构中。

这种形式没有python错误(没有附加到字符串),尽管我的测试失败了(正如我所期望的那样,因为它没有访问/lists)。

这是我得到的python错误。

我是否在不知不觉中试图修改live_server_url导致这些TypeErrors 的 , ?我怎样才能以编程方式构建一个字符串live_server_url + "/lists"

这是我正在尝试的测试...

0 投票
1 回答
475 浏览

python - 子目录中的测试

在 Django 1.8 中,我有一个具有此设置的应用程序:

当我运行时python manage.py test -v 2 app,我收到此错误:

为什么是这样?

我该如何解决?