2010-09-07 14 views
8

Ben test.py modülü hazırlandıNeden django testlerimı görmüyor?

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>']) 
     .... 

dolu ve benim uygulamayla klasöre koydum. i test veritabanı oluşturduktan sonra

python manage.py test forum 

tarafından testleri çalıştırdığınızda ı bir cevap ben yanlış yapıyorum

"0.000s 0 testleri Ran" olsun?

P.S.

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

Ben tests.py için test.py değiştirildi: İşte benim proje hiyerarşi olduğunu. Eclipse, bu modülün testlerle olduğunu, ancak cevabın hala "0,000s içinde 0 koşulu var" olduğunu belirtiyor.

+0

'test.py' nerede yaşıyor? –

cevap

3

Dosyayı tests.py olarak değiştirdikten sonra aynı sonucu alıyorsanız, doğru olmayan bir şey var. Testleri nasıl yürütüyorsun? Komut satırından mı yapıyorsunuz yoksa Eclipse'i kullanarak özel bir çalışma hedefi mi kuruyorsunuz? Henüz yapmadıysanız lütfen komut satırından deneyin. Ayrıca, Django kabuğunu (python manage.py shell) açın ve test modülünüzü içe aktarın.

from MyProj.forum.tests import SimpleTest 

İçe aktarma düzgün çalışıyor mu?

+0

Testlerimi komut satırından çalıştırdım. – user441495

+0

"python manage.py shell" ve "TestProcess.Forum'dan test_forum'dan" denedim (test sınıfını yeniden adlandırdım) ve işe yaramadı. Ancak "MyProj.forum.tests import" ve "MyProj.forum.tests import *" hatalarını almadan geçti. – user441495

+0

Bir şeyin yanlış olduğu anlaşılıyor. Bunu deneyin: “MyProj.forum'dan ithal testler” ve ardından “dir (tests)”. Sınıf isminizin “dir” komutunun çıktısında olup olmadığını görün. –

5

Adını tests.py olarak adlandırmanız gerekiyor.

+0

Test.py - tests.py için yeniden adlandırdım. Eclipse bu modülün testlerle olduğunu, ancak cevabın hala "0.000s içinde 0 koştu" olduğunu – user441495

5

test_content yöntemine benzeyen yönteminizi test yeniden adlandırmayı deneyin.

Django en TestCaseunittest.TestCase bir alt sınıfıdır. Test atlet test_* adında tüm yöntemleri (organising test code için piton dokümanlar bakınız çalışacak inanıyoruz, bu nedenle aynı kurallar geçerli olmalıdır.

+0

Test sınıfımı yeniden Test_forum olarak değiştirdim. Fakat bu, – user441495

+0

'un işe yaramadı. Sınıfı yeniden adlandırmayın, yöntemi yeniden adlandırın. Büyük/küçük harf duyarlı olabilir, bu yüzden test_forum'u deneyin. – Alasdair

+0

Test_forum yöntemini yeniden adlandırdım. Yardımcı olmadı: ((( – user441495

29

You'll öneki kullanmak gerekir her test yöntemi için test_

+0

bu benim için çalıştı! – nemesisdesign

+0

Benim için de, teşekkürler! – dehq

+0

Bende, Django 1.4. Thx! –

8

Özet:.

python manage.py test YOUR_APP 
:

0) sadece uygulamanız için koşmak deneyin YOUR_APP INSTALLED_APP yapılandırmasında ise

1) settings.py içinde dosyasını kontrol sözcüğü "test", örneğin başlamalı

2) Deney yöntemi:

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

3) Eğer tests.py dosyası yerine testleri adlı bir dizin kullanıyor, bunun içinde bir init .py dosyası olup olmadığını kontrol edin.

4) Bir testler dizini kullanıyorsanız, tests.pyc ve tests.pyo dosyaları çıkarın.(Python3 için pycache dir)

+1

4 , '__pycache__' klasörünü kaldırmak için unutma beni – PvdL

+0

lol için # 2 oldu –

0

Ben bütün bunları denemiş ama ben bütün testleri tutmak için oluşturulan ve Django bulamadım testler dizinde __init__.py dosyası eklemek için ihmal.

İlgili konular