0

我在 Django 1.3 中创建测试套件时遇到问题。

假设我在名为app_name. 该目录中的一个文件foo.py定义了一个名为Foo. 我想对此进行测试,所以我还有一个名为该目录的文件,foo_test.py它定义了一个名为FooTest. 该文件如下所示:

import unittest
import foo

class FooTest(unittest.TestCase):
  def setUp(self):
    self.foo_instance = foo.Foo()

  ... etc

现在,我将在其他文件中包含其他测试用例,并且我希望将它们全部作为测试套件的一部分运行。所以在同一个目录中,app_name我创建了一个tests.py定义套件的文件。起初,我将其定义为:

import foo_test

from django.test.simple import DjangoTestSuiteRunner

def suite():
  runner = DjangoTestSuiteRunner()
  return runner.build_suite(['app_name'])

不幸的是,这失败了,因为调用搜索runner.build_suite(['app_name'])文件,执行,并且递归地继续下去,直到 Python 解释器停止一切以超过最大递归深度。app_nametests.pysuite()

更改runner.build_suite(['app_name'])

runner.build_suite(['app_name.foo_test'])

或者

runner.build_suite(['app_name.foo_test.FooTest'])

导致错误,如ValueError: Test label 'app_name.foo_test' does not refer to a test.

并将其更改为:

runner.build_suite(['foo_test'])

或者

runner.build_suite(['foo_test.FooTest'])

导致错误,如App with label foo_test could not be found.

在这一点上,我有点没有想法。任何帮助将不胜感激。谢谢!

4

1 回答 1

0

请参阅Python 文档以组织测试,并使用其中的一种替代方法来构建您的测试套件。顺便说一句,推荐的方法都没有使用build_suite.

于 2012-04-11T18:44:07.273 回答