【问题标题】:loading fixtures for django tests加载 Django 测试的夹具
【发布时间】:2011-01-12 12:25:47
【问题描述】:

我想在我的测试中使用一些固定装置。

我有 cms_sample 应用程序和一个固定文件夹,里面有:cms_sample_data.xml

我在test.py 中使用以下内容:

class Functionality(TestCase): 
    fixtures = ['cms_sample_data'] 

我确实使用django.tests 中的TestCase 而不是unittest

但未加载固定装置。我错过了什么?

【问题讨论】:

  • 尝试使用 python manage.py test api --verbosity 2 运行它可能会提供一个线索。
  • 好的。我看到他检查了 initial_data 固定装置,但他不是在寻找 cms_sample_data 固定装置。有什么想法吗?
  • 这个夹具在手动加载时能工作吗?
  • 它位于文件路径的什么位置?
  • 我也有同样的问题 - 你找到解决方案了吗?

标签: django unit-testing testing fixtures


【解决方案1】:

忘记了 xml 扩展名?

class Functionality(TestCase): fixtures = ['cms_sample_data.xml']

【讨论】:

  • 既然你检查了这个作为答案,你能解释一下吗?
  • 他认为事情不是这样,但确实如此。
  • -1 未能证明添加扩展是合理的。当您不提供任何扩展的固定装置时,Django 会寻找它;添加扩展名只会使 Django 更容易通过将搜索范围缩小到具有该确切名称的文件来定位该特定扩展名。
【解决方案2】:

也许您的 cms_sample_data 文件有误。 你可以使用这个命令: manage.py 加载数据 cms_sample_data

检查文件。

【讨论】:

    【解决方案3】:

    我在 Django 的文档中学习这个主题时遇到了类似的问题。我如何解决它是将存储我的灯具的格式文件更改为正确的格式。最初,我保存的夹具是一个名为“test_db.json”的普通文本文件。意识到这一点后,我将“.txt”文件更改为“.JSON”文件。一旦我输入“./manage.py test”命令,它就开始自行加载夹具。

    【讨论】:

      【解决方案4】:

      您是否使用多个数据库?如果是这样,您的测试可能需要设置multi_db property:

      multi_db = True
      

      【讨论】:

        猜你喜欢
        • 2018-02-07
        • 2011-06-07
        • 2013-10-24
        • 2011-04-16
        • 2013-08-24
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 2023-03-16
        相关资源
        最近更新 更多