2012-12-05 39 views
5

क्या Django स्वचालित परीक्षण में स्थिर पृष्ठ घटकों की सफल लोडिंग का परीक्षण करना संभव है?Django: स्थैतिक फ़ाइलों की सफल लोडिंग का परीक्षण

उदाहरण के लिए, client.get('x').status_code का परीक्षण करने के अलावा, django परीक्षण क्लाइंट का उपयोग करने के अलावा, मैं परीक्षण करना चाहता हूं कि सभी पृष्ठ के स्थिर संसाधन (लिंक किए गए सीएसएस और जेएस फाइलें) सफलतापूर्वक लोड हो जाएं।

यदि client का उपयोग करना संभव नहीं है, तो क्या कोई प्लगइन या पूरक परीक्षण प्रणाली है, उदा। सेलेनियम, इस तरह के परीक्षण सक्षम करने के लिए?

उत्तर

2

मुझे लगता है कि आप यह जानना चाहते हैं कि django का staticfile खोजक आपके स्थिर संसाधनों को ढूंढने में सक्षम है या नहीं।

अपने ऐप का नाम my_app पर विचार करें। आपके पास static नामक फ़ोल्डर है। आपके पास फिर से my_app नामक एक फ़ोल्डर है जिसमें आपका स्थिर संसाधन है, आइए 'test.jpg' नाम की कुछ छवि कहें।

myapp 
|-- __init__.py 
`-- models.py 
`-- static 
    `-- myapp 
     `-- test.jpg 

from django.contrib.staticfiles import finders 
from django.contrib.staticfiles.storage import staticfiles_storage 

class TestStaticFiles(TestCase): 
"""Check if app contains required static files""" 
def test_images(self): 
    abs_path = finders.find('myapp/test.jpg') 
    self.assertTrue(staticfiles_storage.exists(abs_path)) 

finders सभी एप्लिकेशन की static/ उपनिर्देशिका स्थिर संसाधन खोजने के लिए अंदर लग रहा है।

1

मैंने खुद को एक बहुत ही समान समस्या के साथ पाया, हालांकि मैं यह सत्यापित करना चाहता था कि फ़ाइल को लोड किया गया था, इसे जांचने के बजाय पृष्ठ में शामिल किया गया था, क्योंकि मैं इसे चुनिंदा रूप से शामिल करता हूं।

ऐसा करने के लिए, मैं बस assertContains का उपयोग कर जांच की गई:

def test_static_file_included(self): 
    response = self.client.get(reverse('my-view')) 
    self.assertContains(response, 'staticfilename.js') 

ध्यान रखें कि staticfilename.js कहीं पेज में सब शामिल किया जा सकता।

assertContains जांच करेगा कि प्रतिक्रिया स्थिति_code ठीक है या नहीं, तो जांच करें कि खोज str response.content में शामिल है या नहीं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^