के साथ Django TransactionTestCase मैं अजगर 2.7.7 का उपयोग कर पाइथन 2.7.6 और पोस्टग्रेज़ डेटाबेस के रूप में कर रहा हूं और मुझे TransactionTestCase
के साथ समस्या थी। मेरे माइग्रेशन में मेरे पास दो डेटामैग्रेशन था और मैं चाहता था कि वे परीक्षण के दौरान उपलब्ध हों, इसलिए मैंने अपने टेस्ट केस (https://docs.djangoproject.com/en/1.7/topics/testing/overview/#test-case-serialized-rollback) में serialized_rollback = True
जोड़ा।रोलबैक इम्यूलेशन
परीक्षण मामलों के पहले टेस्ट ठीक था, लेकिन फिर Django एक IntegrityError
साथ यह शिकायत करते हुए:
IntegrityError: duplicate key value violates unique constraint "django_content_type_app_label_6032a1f08b99c274_uniq"
DETAIL: Key (app_label, model)=(admin, logentry) already exists.
मैं परीक्षण चलाने के लिए और अपनी सेटिंग्स के लिए निम्न जोड़कर इस त्रुटि से बचने में कामयाब (https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-TEST_NON_SERIALIZED_APPS):
TEST_NON_SERIALIZED_APPS = ['django.contrib.contenttypes',
'django.contrib.auth']
लेकिन मुझे यह जानना है कि इसकी आवश्यकता क्यों है? क्या यह रोलबैक में एक बग है या क्या यह मेरी तरफ एक समस्या है?
तुम बस मेरी TransactionTestCase परीक्षण के साथ एक बहुत बड़ी समस्या से बचने के लिए मुझे मदद की। मैंने अभी तक TEST_NON_SERIALIZED_APPS के बारे में कभी नहीं सुना है। धन्यवाद। मुझे लगता है कि ऐसा इसलिए है क्योंकि TransactionTestCase टूटा हुआ लगता है। मेरा कोड 1.7.2 के साथ काम किया, यह TEST_NON_SERIALIZED_APPS के बिना 1.7.8 पर बंद हुआ। मैं (धीरे-धीरे) py.test पर जा रहा हूं, मुझे लगता है कि pytest-django फिक्स्चर मुझे इसके साथ मदद करेगा। अंततः। आपके प्रश्न के लिए मेरा जवाब? मुझे लगता है कि आपने सबकुछ ठीक किया है और यह पूरे जिम्नास्टिक को Django 1.7 एटीएम के साथ जरूरी है। – dotz
मैं सहमत हूं, यह एक प्रश्न है और सभी में एक जवाब है। बहुत धन्यवाद! मुझे यकीन नहीं है कि Django डिफ़ॉल्ट रूप से उन ऐप्स को क्रमबद्ध क्यों नहीं करता है, क्योंकि मेरे मामले में यह आपके द्वारा सुझाए गए TEST_NON_SERIALIZED_APPS सेट के बिना काम नहीं करता है। –