代码之家  ›  专栏  ›  技术社区  ›  Tom

django单元测试和全球夹具

  •  3
  • Tom  · 技术社区  · 17 年前

    我正在Django中从事一个web项目,并且正在使用python unittest框架。对于每个应用程序,我都有一些固定装置。这意味着,每个应用程序在fixture中都有一些相同的表。我希望在应用程序和测试用例之间共享fixture,因为否则,如果我更改模型,我将不得不更改引用此具体表的所有json fixture。

    使用全球固定装置是否明智?

    3 回复  |  直到 17 年前
        1
  •  2
  •   Paulo Cheque    13 年前

    不要使用静态夹具,这是一种糟糕的自动测试模式。使用动态装置。

    Django Dynamic Fixture 具有创建全局装置的选项。检查其 Nose plugin 或者 Shelve option

        2
  •  1
  •   Vince    13 年前

    我强烈建议调查Django的 Testing architecture .查看TestCase。特别是固定装置;这比unittest更高级,更适合Django。

        3
  •  1
  •   Manoj Govindan    13 年前

    我想不出使用全局装置有什么错,只要你在你的应用程序中删除它们 tearDown teardown_test_environment 方法-见下文)。

    1. class TestBase(django.test.TestCase):
          fixtures = ['common_fixtures.xml']
      
      class MyTestClass(TestBase):
          fixtures = TestBase.fixtures + ['fixtures_for_this_test.xml']
      
          def test_foo(self):
              # test stuff
      
    2. setup_ 和 拆卸测试环境