问题标签 [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.
django - Django 测试:数据库中的更改字段
我正在尝试为我的应用程序运行测试,它给出的消息就像
哦,这是因为我已经改变了CharField
使用IntegerField
SQL 语法(虽然迁移是为了这个改变而创建的)
因此,在运行test
命令时,创建测试数据库时失败。
有没有办法解决这个问题?
更新:现在我正在跳过使用第三方应用程序使用 http s://pypi.python.org/pypi/django-test-without-migrations/运行迁移的部分
现在正在创建测试表,但缓存表失败
python - Django 测试中的异常错误错误地认为实例不存在
我有非常定制的 Django 应用程序,它检查用户是否可以将 ForeignKey 更改为某些值。
在这种情况下,aUser
属于 aWorkgroup
并且 anItem
也可以属于 a Workgroup
,因此,当 a 生成User
an时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
不再出现在查询集中。现在,这是为什么呢?
完整代码:
django - Django 测试:--keepdb 是否重置测试期间所做的更改?
根据有关测试的 Django 文档,该--keepdb
标志将保留测试数据库以供将来运行。
https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---keepdb
为了清楚起见,测试(即:)对数据库所做的任何更改是否object.save()
会自动重置?还是需要从测试中撤消这些更改?
python - Django:保持 setUpTestData DRY
我一直很享受 Django 1.8 中的 setUpTestData 和 --keepdb 带来的便利!
但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法放在一个位置,并让我的每个测试文件都引用它,这样我就不必将更改复制/粘贴到每个单独的测试文件中。
我对如何解决这个问题有点困惑,特别是关于似乎阻止我从另一个文件导入我的 setUpTestData 函数的类方法。有人能帮我吗?提前谢谢!
当前测试文件
设置数据文件
django - django 测试上传图片
我想测试用户注册,但我无法测试图像这是我的测试:
测试.py
我得到代码 400(错误请求),但没有照片我的测试通过
所以我想测试用户照片,其他任何东西都可以正常工作。谢谢你的帮助
python - Django断言响应包含可能的字符串列表之一
我正在使用内置测试工具为我的 Django 应用程序编写测试。现在,我正在尝试为显示用户关注者列表的页面编写测试。当用户没有关注者时,页面会显示一条从字符串列表中随机挑选的消息。举个例子:
所以现在我想编写一个测试,断言响应包含这些字符串之一。如果我只使用一个字符串,我可以使用self.assertContains(request, "You don't have any followers.")
,但我被困在如何编写具有多种可能结果的测试。任何帮助,将不胜感激。
python - django rest框架中的可重用权限测试
我正在为一个安静的服务(使用DRF)编写测试,我想要在权限视图更改时不需要修改的测试。
例子:
view.py
class List(generics.ListAPIView): permission_classes = (IsAuthenticated, ) queryset = List.objects.all() serializer_class = ListSerializer
/li>test.py
如果运行测试
但如果permission_classes = (AllowAny, )
运行测试
那么,当权限更改时,我如何将测试编码为无需重新编码?
谢谢
python - 应该测试 Django 模型吗?
我应该测试 Django 模型吗?到目前为止,我一直在为视图编写测试。还有什么可以而且应该测试的?
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
')。
TypeError
s 出现在这些字符串结构中。
这种形式没有python错误(没有附加到字符串),尽管我的测试失败了(正如我所期望的那样,因为它没有访问/lists
)。
这是我得到的python错误。
我是否在不知不觉中试图修改live_server_url
导致这些TypeError
s 的 , ?我怎样才能以编程方式构建一个字符串live_server_url + "/lists"
?
这是我正在尝试的测试...
python - 子目录中的测试
在 Django 1.8 中,我有一个具有此设置的应用程序:
当我运行时python manage.py test -v 2 app
,我收到此错误:
为什么是这样?
我该如何解决?