2017-01-09 4 views
0

私は削除できない多くのマイグレーションがあります。だから私がテストを実行すると、完璧な--keepdbで実行しなければ時間がかかりすぎます。唯一の問題は、--keepdbsetUpの方法がどのように連動するかです。テストのsetUp方法では、私はこのような何かを:djangoはsetUpと--keepdbをテストします

class APITests(APITestCase): 

    fixtures = ['tests/testdata.json'] 

    def setUp(self): 
     username = "test" 
     password = "1234" 

     user_created = User.objects.create_user(username=username, password=password) 

     body = { 
      "username": username, 
      "password": password 
     } 

     cart = Cart.objects.create() 
     Client.objects.create(user=user_created, cart=cart) 

APITestCaseはただDjangoのテストクラスのためのDjangoの残りのフレームワークのラッパーです。私はそのユーザーのためにユーザー、クライアント、カートを作成します。 --keepdbでテストを再実行すると、setUpメソッドは重複したユーザーまたはカートを作成しますか?この場合、どのように動作しますか?

答えて

2

APITestsでテストケースごとにsetUpメソッドが実行されます。各テストはトランザクション内で実行されるため、作成されたオブジェクトは各テストの終了時に破棄されます。

keepdbオプションはこれにまったく影響しません。

setupTestDataを使用すると、より効率的なテストを行うことができます。

+1

setupTestDataリファレンスをお寄せいただきありがとうございます。 – alejoss

関連する問題