django - 在 Django 上测试应用程序时未找到固定装置

标签 django unit-testing testing fixtures

我终于决定为我的所有代码创建单元测试。也就是说,我正在尝试根据我的模型创建固定装置,以针对它们测试我的功能。

我已经使用 dumpdata 命令创建了一个 json fixture,并将其放置在我的应用程序的 fixtures 目录下。以下是我测试的代码:

import unittest
from mysite.myapp.models import Post

class RatingTestCase(unittest.TestCase):
  fixtures = [
      'posts.json',
  ]

def test_me(self):
  p = Post.objects.all()
  self.assertTrue(p)

我在我的 Arch Linux 机器上使用以下命令运行我的测试:

python2.7 manage.py test myapp

它创建了一个 sqlite 数据库并安装了所有的表和索引,但是最后它说没有找到固定装置并且说我的测试失败了,因为它没有找到任何数据。

我正在运行最新版本的 Django 开发版,并注意到根据文档我应该使用以下方法导入单元测试:

从 django.utils 导入单元测试

但是,当我这样做时,它会提示无法导入 unittest。这就是我导入的原因 直接从我的 python 路径进行单元测试。

我以前尝试过模拟 Django 模型对象,但我认为使用固定装置测试 Django 应用程序比使用模拟库更好。知道如何加载固定装置吗?

提前致谢。

编辑:如果我将 fixture 名称更改为 initial_data.json,它会在我每次运行测试时加载它。但是,我仍然需要多个 fixture 名称来运行不同的测试。

编辑:我通过从以下导入 TestCase 使其工作:

from django.test import TestCase

最佳答案

有几件事可以提供帮助:

  1. 您可以使用 --verbosity=2 运行测试以查看 django 在哪些目录中查找固定装置。
  2. django TestCase 是 django 推荐使用的,而不是 unittest。
  3. 您的 fixture 目录/文件位于何处?如果它不在您的应用程序中,您必须在设置文件中指定一个 fixture 目录。

关于django - 在 Django 上测试应用程序时未找到固定装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027365/

相关文章:

django - Django "app"应该是什么意思?

ruby - 如何在minitest中模拟另一个类的实例方法

java测试具有动态泛型类型的泛型

ruby-on-rails - rails 4 : How to test Controller Action

python - 如果图像大小为 GT 300KB,则 django-imagekit 压缩图像

python - 编写 django Rest 序列化器时遇到的问题

perl - Test::More 不知道 test 是否死亡 - 那么我该如何测试?

javascript - Resharper 在 javascript 测试中重新排序我的路径引用

python - 南 - 如何强制某些迁移?

python - Setuptools - 当测试不在主目录中时如何运行 unittest 测试套件?