代码之家  ›  专栏  ›  技术社区  ›  kurczak

在Django标记中,单元测试是如何工作的,因为我希望我的测试可以这样运行?

  •  0
  • kurczak  · 技术社区  · 17 年前

    浏览时几次 tests Dir在我偶然发现的各种Django应用程序中 models.py 和 settings.py 文件(in) django-tagging 例如)。

    但是没有找到可以同步测试模型或应用自定义测试设置的代码——但是测试使用它们就像Django可以神奇地自动加载一样。但是如果我试着跑 Dango标签 的测试: manage.py test tagging 它甚至不做一个测试。

    这正是我现在测试我的应用程序所需要的,但不知道怎么做。

    那么,它是如何工作的呢?

    2 回复  |  直到 17 年前
        1
  •  1
  •   ars    17 年前

    如果要在中运行测试 django-tagging ,您可以尝试:

    django-admin.py test--设置=标记.tests.settings

    基本上,它使用的是 tests.py 文件在 tests 包/目录。测试使用同一目录中的设置文件(并在Django Admin的命令行中指定)。有关更多信息,请参阅Django文档 writing doctests .

        2
  •  0
  •   hughdbrown    17 年前

    你的意思是,“我如何在Django编写单元测试?”检查 documentation on testing .

    完成后,我在一个测试/子目录中编写了单元测试。确保目录有一个空的初始化文件。您可能还需要models.py文件。添加从unittest.testcase派生的单元测试(在模块unittest中)。将模块'XXXX.TEST'添加到已安装的\u apps in settings.py(其中'XXXX'是应用程序的基本名称)。

    以下是我的一些示例代码,可以帮助您开始:

    #!/usr/bin/env python
    # http://docs.djangoproject.com/en/dev/topics/testing/
    
    from sys import stderr
    import unittest
    from django.test.client import Client
    from expenses.etl.loader import load_all, load_init
    
    class TestCase(unittest.TestCase):
        def setUp(self):
            print "setUp"
    
        def testLoading(self):
            print "Calling load_init()"
            load_init()
            print "Calling load_all()"
            load_all()
            print "Done"
    
    if __name__ == '__main__':
        unittest.main()
    

    如果您的意思是,“如何将数据加载到单元测试中?”,然后使用同一文档页上描述的夹具。