Django的。 TestCase没有运行

时间:2013-02-13 12:04:54

标签: python django

为什么我在终端中运行python manage.py test appname是:在0.000s中执行0次测试确定

这是我的tests.py:

from django.test import TestCase
import appname.factories

class UserProfileTest(TestCase):
    def sample_data(self):
        for i in range(0, 10):
            user = appname.factories.UserProfileFactory.create()

我的models.py:

from django.db import models

class UserProfile(models.Model):
    street = models.CharField(max_length=250)
    tel = models.CharField(max_length=64, default='', blank=True)
    postcode = models.CharField(max_length=250)

    def __unicode__(self):
        return self.tel

我的workers.py(工厂男孩):

from appname.models import *
import factory


class UserProfileFactory(factory.Factory):
    FACTORY_FOR = UserProfile

    street = factory.Sequence(lambda n: 'Street' + n)
    tel = factory.Sequence(lambda n: 'Tel' + n)
    password = 'abcdef'

2 个答案:

答案 0 :(得分:4)

您的个人测试功能应以“test”一词开头。

您需要将功能def sample_data(self):更改为def test_sample_data(self):

测试运行器将查找名为tests.py的文件中的任何类,该文件位于应用程序的根目录中,并扩展为unittest.TestCase。然后它将运行该类中以单词test开头的任何函数(加上一个或两个其他函数,如setup()

我可能很迟钝,但我在main django testing docs中看不到任何内容,表明函数必须以test一词开头。无论如何,在this(官方)教程中提到了这个要求。

答案 1 :(得分:2)

test.py错误,应为tests.py

docs about writing tests

  

对于给定的Django应用程序,测试运行器在两个位置查找单元测试:

     
      
  • models.py文件。测试运行器在此模块中查找unittest.TestCase的任何子类。
  •   
  • 应用程序目录中名为tests.py 的文件 - 即包含models.py的目录。同样,测试运行器在此模块中查找unittest.TestCase的任何子类。
  •