2

Django でカスタム マネージャーのテスト スイートを作成しており、多数の項目をテストしたいと考えています。

基本的に、組み合わせの爆発により、数千のアイテムを作成する必要があります。

私が必要としているのは、データベースに多数の Django オブジェクトを作成し、それらを再作成するのではなく、テスト クラス全体で保持する方法です。

次のコードがあります。

class CustomConceptQuerySetTest(TestCase):
    def setUp(self):
        pass #make lots and lots of items.

    def test_is_public(self):
        pass # check if returned items in the object.public() queryset are actually "public"
    def test_is_editable(self):
        pass # check if returned items in the object.viewable() queryset are actually "viewable" only to certain users.

残念ながら、setUpは各テストの前に呼び出されますが、内容はテスト中に変更されず、読み取りのみで、毎回同じです。

Django でデータベースを保持したり、テスト クラス内でロールバックや破壊を防止したりする方法はありますか?

4

1 に答える 1

6

クラスメソッドを使用できます:setUpClass()

class CustomConceptQuerySetTest(TestCase):
    @classmethod
    def setUpClass(cls):
        ...
于 2015-03-29T03:56:26.313 に答える