如果测试类中有几个方法,我发现执行的顺序是按字母顺序排列的。但我想自定义执行的顺序。如何定义执行顺序?
例如:先加载testTestA,再加载testTestB。
class Test(TestCase):
def setUp(self):
...
def testTestB(self):
#test code
def testTestA(self):
#test code发布于 2010-04-06 05:01:30
单元测试的一个原则是每个测试都应该独立于所有其他测试。如果在您的情况下,testTestA中的代码必须在testTestB之前,那么您可以将这两个代码合并到一个测试中:
def testTestA_and_TestB(self):
# test code from testTestA
...
# test code from testTestB或者,也许更好的方法是
def TestA(self):
# test code
def TestB(self):
# test code
def test_A_then_B(self):
self.TestA()
self.TestB()Test类只测试那些名称以小写test...开头的方法。因此,您可以添加额外的帮助器方法TestA和TestB,除非显式调用它们,否则不会运行它们。
发布于 2010-04-06 04:43:41
据我所知,除了重命名测试之外,没有其他方法可以对测试进行排序。你能解释一下为什么你需要按照特定的顺序运行测试用例吗?在单元测试中,它通常被认为是糟糕的实践,因为它意味着你的用例不是独立的。
发布于 2015-02-15 02:12:27
要更新主题(来自文档):
为了保证所有TestCase代码都从干净的数据库开始,Django test runner以以下方式重新排序测试:
首先运行
TestCase子类。然后,运行所有其他基于SimpleTestCase的测试用例,包括TransactionTestCase),不保证或强制它们之间的特定顺序。doctests)。注释:新的测试排序可能会揭示测试用例排序上的意外依赖。这就是文档测试的情况,这些文档测试依赖于给定TransactionTestCase测试在数据库中留下的状态,它们必须更新才能独立运行。
https://stackoverflow.com/questions/2581005
复制相似问题