问题标签 [django-unittest]

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 投票
5 回答
24966 浏览

python - 在 django 中对 FileField 进行单元测试的干净方法是什么?

我有一个带有 FileField 的模型。我想对它进行单元测试。django 测试框架有很好的方法来管理数据库和电子邮件。FileFields 有类似的东西吗?

如何确保单元测试不会污染实际应用程序?

提前致谢

PS:我的问题几乎是使用测试夹具的 Django 测试 FileField的重复,但它没有可接受的答案。只是想重新询问有关此主题的新内容。

0 投票
2 回答
1616 浏览

django - 使用结构运行 django 测试

我有一个结构脚本,它试图为我编写的应用程序运行测试。
它已经使用 setup.py 安装,我可以导入它。
我正在按照我在这里找到的脚本。
我的问题是 django-admin 找不到我的应用程序:

回溯(最后一次调用):
文件“/usr/local/lib/python2.6/dist-packages/fabric/main.py”,第 542 行,在主要命令 [name](*args, **kwargs) 文件中“/usr/local/lib/python2.6/dist-packages/envconf/fabfile.py”,第 35 行,在测试 management.call_command('test', 'envconf') 文件“/usr/local/lib/python2 .6/dist-packages/django/core/management/ init .py”,第 166 行,在 call_command 返回 klass.execute(*args, **defaults) 文件“/usr/local/lib/python2.6/dist- packages/django/core/management/base.py”,第 220 行,在执行输出 = self.handle(*args, **options) 文件“/usr/local/lib/python2.6/dist-packages/django/ core/management/commands/test.py",第 37 行,在句柄故障 = test_runner。运行测试(测试标签)
文件“/usr/local/lib/python2.6/dist-packages/django/test/simple.py”,第 395 行,在 run_tests 套件 = self.build_suite(test_labels, extra_tests) 文件“/usr/local/lib/ python2.6/dist-packages/django/test/simple.py”,第 285 行,在 build_suite app = get_app(label) 文件“/usr/local/lib/python2.6/dist-packages/django/db/models /loading.py",第 140 行,在 get_app raise ImproperlyConfigured("App with label %s could not be found" % app_label) django.core.exceptions.ImproperlyConfigured: App with label envconf could not be found

这是我的代码: import functools import os

有什么问题?

0 投票
2 回答
140 浏览

django - 如何测试在数据库中使用 UDF 的 Django 站点?

我有一个 django 项目,它使用带有许多 UDF 的 postgres 数据库。UDF 是用 plpythonu 编写的。由于 plpyhtonu 是一种不受信任的语言,因此只有数据库超级用户才能使用它来创建 UDF。这带来了一个严重的问题,因为我无法在测试套件中以编程方式创建它们。现在我看到两个选项:

  1. 修改 django.db.backends.creation._create_test_db 以从模板创建测试数据库,该模板已经加载了我的 UDF。这似乎很难维护。
  2. 创建一个具有 MD5 身份验证的超级用户,并使用 psycopg2 在测试套件中加载 UDF。这似乎不安全。

有没有更可怕的方法可以做到这一点?

谢谢。

0 投票
1 回答
137 浏览

python - 在 Django 中执行单元测试

我为我的 django 视图编写了一个小单元测试。我的项目结构就像

项目名/

这是我的目录结构,我正在使用以下命令执行测试:

$python manage.py test_coverage module1 module2 -v2

然后它很好地执行了测试,但是现在我稍微更改了目录结构,我创建了一个新目录 tests/ 我保留了所有测试文件

项目名/

现在我可以使用上述相同的命令执行那些在目录中的测试,它们是执行此类测试的任何替代方法吗?

0 投票
2 回答
6181 浏览

python - 在 Django 的 unittest 中更改 Client() 的默认域

我正在为 Django 视图编写单元测试。

c = Client() 将“http://testserver”作为我要覆盖的域,我想在该测试客户端中添加我的真实域,他们是自定义测试客户端的方式吗?

0 投票
0 回答
589 浏览

django - Django 单元测试喷出数据库错误 - 无法提交事务 - SQL 语句正在进行中

我正在unittest2与 一起使用manage.py test,甚至在它似乎运行任何测试之前,它都会发出一个可怕的数据库错误,如下所示。我在我的开发环境中(实际上由于各种原因在 Dreamhost 服务器上),使用 sqlite 作为我的数据库。

即使我将我的应用程序从其用于生产的位置复制出来(并相应地编辑 settings.py),我仍然会收到相同的错误(即使它不应再处理与开发环境相同的数据库文件)。

更新:即使将我的数据库文件的所有实例移动到不同的文件名,我仍然会遇到同样的错误。这让我相信测试环境以某种方式查看了一个伪造的数据库,或者正在发生一些非常奇怪的事情。

基本上,我不知道从哪里开始解决这个问题。有任何想法吗?

0 投票
1 回答
1951 浏览

python - 导入 django.test 不起作用

由于无法导入 django.test 模块,因此单元测试不起作用。

请有人帮我解决它。我正在使用 django 1.3 版

0 投票
2 回答
6213 浏览

django - 使用 Django 测试客户端测试预期的 404 会导致未处理的异常

我正在使用 Django 测试客户端django.test.client.Client来测试 Django 应用程序中的一些视图。特别是,我正在测试视图调用get_object_or_404方法但对象不存在的情况,因此应该返回 404。

我的测试代码如下所示:

但是,我得到的是视图代码中未处理的异常错误:

根据Django 1.3 文档

测试客户端不可见的唯一例外是 Http404、PermissionDenied 和 SystemExit。Django 在内部捕获这些异常并将它们转换为适当的 HTTP 响应代码。在这些情况下,您可以在测试中检查 response.status_code。

在这种情况下,为什么 Django 没有捕获 Http404 异常?

请注意(与文档一致),异常不会被抛出到测试客户端。如果我尝试在客户端捕获异常:

我得到同样的错误,以及一个额外的错误:

0 投票
2 回答
1830 浏览

python - Django Unittest 不加载夹具

Django testrunner 没有从媒体应用程序的fixtures/目录中加载fixtures。我该如何调试它 - 找出它是否正在寻找我的灯具以及在哪里?

(Python 2.7.1,Django 1.3.1)

我的应用(app_label=media)目录结构:

通用.py

追溯:

0 投票
2 回答
186 浏览

django - django 1.4c1 单元测试寻找“其他”数据库

为了通过在全新安装的 django trunk (1.4c1) 上运行的单元测试,有必要other在 settings.py 中添加一个“虚拟”数据库,如下所示:-

为什么会这样?在 django/db/utils.py 的ConnectionHandler类中这个“ensure_defaults”函数的目的是什么?

只是想更深入地了解 django ......