2010-09-07 13 views
8

मैं test.py मॉड्यूल बनाया,django मेरे परीक्षण क्यों नहीं देखता है?

from django.test import TestCase 
from django.test.client import Client 
from django.contrib.auth.models import User 
from django.contrib.sites.models import Site 

from forum.models import * 

class SimpleTest(TestCase): 


    def setUp(self): 
     u = User.objects.create_user("ak", "[email protected]", "pwd") 
     Forum.objects.create(title="forum") 
     Site.objects.create(domain="test.org", name="test.org") 

    def content_test(self, url, values): 
     """Get content of url and test that each of items in `values` list is present.""" 
     r = self.c.get(url) 
     self.assertEquals(r.status_code, 200) 
     for v in values: 
      self.assertTrue(v in r.content) 

    def test(self): 
     self.c = Client() 
     self.c.login(username="ak", password="pwd") 

     self.content_test("/forum/", ['<a href="/forum/forum/1/">forum</a>']) 
     .... 

से भरा है और अपने आवेदन के साथ फ़ोल्डर में रखा गया है। जब मैं परीक्षण डेटाबेस बनाने के बाद

python manage.py test forum 

द्वारा परीक्षण चलाने मैं एक जवाब

क्या मैं गलत कर रहा हूँ "0.000s में 0 परीक्षण Ran" मिल सकता है?

पीएस

MyProj: 
    forum (it's my app): 
     manage.py 
     models.py 
     views.py 
     tests.py 
     ... 

मैं tests.py को test.py का नाम बदला: यहाँ मेरी परियोजना पदानुक्रम है। ग्रहण ने पाया कि यह मॉड्यूल परीक्षण के साथ है, लेकिन उत्तर अभी भी "0.000s में रैन 0 परीक्षण"

+0

'test.py' कहां रहता है? –

उत्तर

3

फ़ाइल को tests.py पर नाम बदलने के बाद आपको एक ही परिणाम मिल रहा है, तो कुछ सही नहीं है। आप परीक्षण कैसे चला रहे हैं? क्या आप कमांड लाइन से ऐसा कर रहे हैं या आपने एक्लिप्स का उपयोग करके एक कस्टम रन लक्ष्य स्थापित किया है? यदि आप पहले से नहीं हैं तो कृपया इसे कमांड लाइन से आज़माएं।

भी Django खोल (python manage.py shell) को आग लगाना और अपने परीक्षण मॉड्यूल आयात करें।

from MyProj.forum.tests import SimpleTest 

क्या आयात सही तरीके से काम करता है?

+0

मैंने कमांड लाइन से अपने परीक्षण चलाए। – user441495

+0

मैंने "पायथन प्रबंधन.py खोल" और "MyProj.forum.tests आयात test_forum" (मैंने टेस्ट क्लास का नाम बदल दिया) का प्रयास किया, और यह काम नहीं किया। लेकिन "MyProj.forum.tests आयात करें" और "MyProj.forum.tests आयात * से" त्रुटियों के बिना पारित किया गया। – user441495

+0

ऐसा लगता है कि कुछ अस्वस्थ है। इसे आज़माएं: 'MyProj.forum आयात परीक्षणों से' 'dir (परीक्षण) 'के बाद। देखें कि आपका वर्ग नाम 'dir' कमांड के आउटपुट में मौजूद है या नहीं। –

5

आपको इसे tests.py नाम देना होगा।

+0

मैंने test.py को test.py का नाम दिया। ग्रहण ने पाया कि यह मॉड्यूल परीक्षण के साथ है, लेकिन उत्तर अभी भी "0.000s में रैन 0 परीक्षण" – user441495

5

अपनी विधि test को test_content जैसे नाम बदलने का प्रयास करें।

मेरा मानना ​​है कि परीक्षण धावक सभी तरीकों test_* नामित (organising test code के लिए अजगर दस्तावेज़ देख सकेंगे चलेंगे। Django के TestCaseunittest.TestCase का एक उपवर्ग है, इसलिए वही नियम लागू करना चाहिए।

+0

मैंने अपना टेस्ट क्लास टेस्ट_फोर्मम में बदल दिया है। लेकिन इससे मदद नहीं मिली – user441495

+0

कक्षा का नाम बदलें, विधि का नाम बदलें। यह मामला संवेदनशील हो सकता है इसलिए test_forum का प्रयास करें। – Alasdair

+0

मैंने test_forum के लिए विधि का नाम बदल दिया। इससे मदद नहीं मिली: (( – user441495

29

तो आपको उपसर्ग का उपयोग करने की आवश्यकता है प्रत्येक परीक्षा पद्धति के लिए test_

+0

यह मेरे लिए काम करता है! – nemesisdesign

+0

मेरे लिए भी धन्यवाद! – dehq

+0

मुझे भी, Django 1.4 पर। Thx! –

8

सारांश:।

python manage.py test YOUR_APP 
:

0) केवल अपने अनुप्रयोग के लिए चलाने का प्रयास करें

1) अपने settings.py में फ़ाइल की जाँच करें अगर YOUR_APP INSTALLED_APP config में है

2) टेस्ट विधि शब्द "परीक्षण", जैसे साथ शुरू करना चाहिए:

def test_something(self): 
    self.assertEquals(1, 2) 

3) यदि आप नामक निर्देशिका का उपयोग कर रहे हैं के बजाय परीक्षण.py फ़ाइल, जांचें कि क्या इसमें init है। इसके अंदर फ़ाइल।

4) यदि आप एक परीक्षण निर्देशिका का उपयोग कर रहे हैं, तो tests.pyc और tests.pyo फ़ाइलों को हटा दें।(Python3 के लिए pycache dir)

+1

4 के अलावा , '__pycache__' फ़ोल्डर को हटाने के लिए मत भूलना – PvdL

+0

मेरे लिए # 2 था –

0

मैं इन सब बातों की कोशिश की थी, लेकिन मैं परीक्षण निर्देशिका है कि मैं अपने सभी परीक्षणों धारण करने के लिए बनाया है और Django यह नहीं मिल सका में __init__.py फ़ाइल जोड़ने के लिए उपेक्षित।

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