在Django上测试应用程序时未找到任何固件

我终于决定为我所有的代码创建单元测试。 那就是我试图根据我的模型创建灯具来测试我的功能。

我已经使用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数据库并安装所有表和indeces,但最后它说没有找到fixtures,它说我的测试失败,因为它没有找到任何数据。

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

from django.utils import unittest

但是,当我这样做时,它抱怨unittest不能被导入。 这就是为什么我直接从我工作的Python路径导入unittest。

我曾尝试模拟django模型对象,但我认为使用fixture比使用模拟库更好地测试Django应用程序。 任何想法如何加载灯具?

提前致谢。

编辑:如果我更改我的夹具名称initial_data.json,它会加载它,每次我运行我的测试。 不过,我仍然需要有多个灯具名称才能运行不同的测试。

编辑:我得到它通过从以下导入TestCase工作:

from django.test import TestCase

有几件事可以帮助:

  • 您可以使用--verbosity = 2运行测试来查看django在夹具中查找哪些目录。
  • django TestCase是django推荐使用的,与单元测试相反。
  • 您的夹具目录/文件位于何处? 如果它不在您的应用程序中,您必须在设置文件中指定一个夹具目录。

  • 您是否检查过灯具存在的路径是否可用:

    settings.FIXTURE_DIRS = ('/path/to/proj_folder/fixtures/',)
    

    我有名字问题。 即使我在我的夹具目录下的应用程序文件夹下的文件下面的代码将无法正常工作。

    fixtures = ['initial_data2.json']

    然后,我将导入声明更改为刚才的工作状态。

    从django.test导入TestCase

    链接地址: http://www.djcxy.com/p/52301.html

    上一篇: No fixtures found when testing an app on Django

    下一篇: How to use test fixtures with other framework then unit tests