手动执行Django测试用例套件

2024-09-28 22:24:37 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一些python脚本在DB上进行维护,如果我使用unittest在这些脚本上运行测试,那么它们将与DB交互并对其进行破坏。因此,我试图找到一种使用原生Django测试套件的方法,它可以模拟DB而不必破坏真实的DB。从文档来看,您可以使用manage.py tests /path/to/someTests.py运行测试脚本,但只能在Django > v1.6(我在Django-Nonrel v1.5.5)上运行测试脚本。在

我发现了How do I run a django TestCase manually / against other database,它说的是运行单个测试用例,它似乎过时了——它提到了{}。但是,我想手动启动我定义的整个测试套件。现在假设我不能使用manage.py test myApp启动套件(因为我并不是这样做的)。我试着用unittest.main()启动测试。这样做有一个缺点。。。它彻底摧毁了数据库。感谢上帝的支持。

在someTest.py在

import unittest
import myModule
from django.test import TestCase

class venvTest(TestCase): # some test
    def test_outside_venv(self):
        self.failUnlessRaises(EnvironmentError, myModule.main)

if __name__ == '__main__':
    unittest.main() # this fires off all tests, with nasty side effect of
                    # totally clobbering the DB

如何运行python someTest.py并让它使用Django测试运行程序启动所有测试用例?

我甚至不能让这个工作起来:

^{pr2}$

更新

既然在评论中提到了这个问题,我在这里提出了一个类似但不同的问题:django testing external script。这个问题涉及使用manage.py test /someTestScript.py。这个问题涉及到分别从manage.py启动测试用例或测试套件。在


Tags: djangopytestimport脚本dbmanage套件