除非指定了应用程序和特定的测试方法,否则Django不会使用manage.py测试运行测试

时间:2010-12-10 21:07:32

标签: django django-testing

我有一个Django应用程序,myApp。在其中,有一个tests.py文件,它使用django.test.TestCase类定义了许多测试用例。例如,其中一个称为WebViews,并且有一个测试方法check_status_codes。

当我运行./manage.py测试时,数据库是使用我的初始数据构建的,但它告诉我它运行了0次测试。如果我这样做,我得到类似的结果(测试没有运行):

  

./ manage.py test myApp

甚至是这样:

  

./ manage.py test myApp.WebViews

但是,如果我执行

  

./ manage.py test.WebViews.check_status_codes

然后确切的测试方法按预期运行。

我可以像这样将一堆测试方法串起来并让它们运行,但这变得非常繁琐,我感觉我错过了一些东西。

有关该怎么做的任何提示或建议?

谢谢!

1 个答案:

答案 0 :(得分:9)

我相信单元测试的惯例是让你的测试方法预先测试。例如:

class FooTest(TestCase):

    def setUp(self):
        # do setup stuff here
        pass

    def tearDown(self):
        # do teardown here
        pass

    def test_one_equals_one(self):
        self.assertEqual(1, 1, "One did not equal 1")