当前位置: 首页 > 面试题库 >

应用具有测试目录时,在Django中运行特定的测试用例

商正浩
2023-03-14
问题内容

Django文档(http://docs.djangoproject.com/zh-CN/1.3/topics/testing/#running-tests)指出,你可以通过指定单个测试用例来运行它们:

$ ./manage.py test animals.AnimalTestCase

假设你将测试保存在Django应用程序的tests.py文件中。如果是这样,那么此命令将按预期工作。

我在tests目录中有针对Django应用程序的测试:

my_project/apps/my_app/
├── __init__.py
├── tests
│   ├── __init__.py
│   ├── field_tests.py
│   ├── storage_tests.py
├── urls.py
├── utils.py
└── views.py

tests/__init__.py文件具有suite()函数:

import unittest

from my_project.apps.my_app.tests import field_tests, storage_tests

def suite():
    tests_loader = unittest.TestLoader().loadTestsFromModule
    test_suites = []
    test_suites.append(tests_loader(field_tests))
    test_suites.append(tests_loader(storage_tests))
    return unittest.TestSuite(test_suites)

要运行测试,我要做的是:

$ ./manage.py test my_app

尝试指定单个测试用例会引发异常:

$ ./manage.py test my_app.tests.storage_tests.StorageTestCase
...
ValueError: Test label 'my_app.tests.storage_tests.StorageTestCase' should be of the form app.TestCase or app.TestCase.test_method

我试图做异常消息说:

$ ./manage.py test my_app.StorageTestCase
...
ValueError: Test label 'my_app.StorageTestCase' does not refer to a test

当我的测试位于多个文件中时,如何指定单个测试用例?


问题答案:

结帐django-nose。它允许你指定测试运行方式:

python manage.py test another.test:TestCase.test_method

或如注释中所述,使用以下语法:

python manage.py test another.test.TestCase.test_method


 类似资料:
  • 问题内容: Django文档(http://docs.djangoproject.com/en/1.3/topics/testing/#running- tests )指出,您可以通过指定单个测试用例来运行它们: 假设您将测试保存在Django应用程序的tests.py文件中。如果是这样,那么此命令将按预期工作。 我在tests目录中有针对Django应用程序的测试: 该文件具有suite()函数

  • 问题内容: 我需要能够通过在Linux shell中键入一行来运行当前目录中的所有测试。在某些目录中,这可以正常工作。但是在其他情况下,当我键入“ nosetests”时,则不会运行任何测试。如果我分别要求进行测试,则将运行这些测试,但我需要它们全部自动运行。这是不起作用的目录之一: 当我在父目录中运行“ nosetests”时,将运行某个子目录中的所有测试,但不会运行/ extwebserver

  • 问题内容: 在JUnit4中可以吗? 在JUnit3中,我将执行以下操作: 问题答案: takari-cpsuite(最初由Johannes Link 开发)提供了一个适合您需求的classpath- suite。它允许通过正则表达式对Classpath中的类进行过滤,例如:

  • 我正在使用Spock框架进行测试(1.0-groovy-2.4版本)。Junit提供了使用命令行(使用Maven)运行特定测试的选项: 问题:我怎样才能和斯波克做到这一点? 这个版本依赖于Junit 4.12,Junit文档中指出,只有Junit 4才支持此功能。x、 基本上,斯波克应该提出类似的建议。

  • 是否可以只通过Gradle调用某些Android测试? 我读过关于如何在gradle上只运行一个测试类,从命令行测试,但这是一种相当复杂的方法。 这是Android Studio推出具体测试类的方式:

  • 在tests目录中有两个子目录,如tests/api和tests/sanity。注:测试/api已完成测试。希望找到输入的py。tests/api目录中的conf。注意:从测试/api运行测试工作正常。但从父目录测试运行测试,失败原因是:py。测试——测试选项=输入。conf用法:py。测试[选项][文件或目录][文件或目录][…] py.test:错误:没有这样的选项:--test_option