簡體   English   中英

django單元測試和全球固定裝置

[英]django unit testing and global fixtures

我正在Django的一個Web項目,我正在使用python unittest框架。 對於每個應用程序,我有一些固定裝置。 這意味着,每個應用程序在燈具中都有一些相同的表格。 我想在應用程序和測試用例之間共享裝置,否則如果我更改模型,我將不得不更改所有引用此具體表的json裝置。

使用全球設備是否明智?

不要使用靜態夾具,這是一個糟糕的自動化測試模式。 使用動態燈具。

Django Dynamic Fixture可以選擇創建全局燈具。 檢查其Nose插件Shelve選項

我強烈建議調查Django的測試架構 特別檢查TestCase.fixtures; 這比單元測試更先進,特定於Django。

只要你在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_teardown_test_environment方法執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM