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

2024-05-01

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

$ ./manage.py test animals.AnimalTestCase

这假设您的测试位于 Django 应用程序的tests.py 文件中。如果这是真的,那么该命令将按预期工作。

我在测试目录中对 Django 应用程序进行了测试:

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

The 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 1.6 开始,您可以使用要运行的元素的完整点符号来运行完整的测试用例或单个测试。

自动测试发现现在将在任何以以下开头的文件中查找测试test在工作目录下,因此解决这个问题您必须重命名您的文件,但现在您可以将它们保存在您想要的目录中。如果您想使用自定义文件名,您可以使用选项标志指定模式(默认 Django 测试运行程序)--pattern="my_pattern_*.py".

所以如果你在你的manage.py目录并想要运行测试test_a inside TestCase子类A在文件内tests.py在应用程序/模块下example你会这样做:

python manage.py test example.tests.A.test_a

如果您不想包含依赖项并且使用的是 Django 1.6 或更高版本,则可以这样做。

请参阅 Django 文档以获取更多信息 https://docs.djangoproject.com/en/stable/topics/testing/overview/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当您的应用程序具有测试目录时,在 Django 中运行特定的测试用例 的相关文章

随机推荐

  • Flaky Android Espresso 测试 - Snackbar

    1 所有正在测试的设备 模拟器都禁用了动画 2 我有一个 BeforeClass 来构建我的 Credentials 对象 3 我有一个IntenServiceIdlingResource和一个EventBusIdlingResource
  • 我应该为 PyDev 下载哪个 Eclipse 包?

    我应该选择哪个 Eclipse 包来进行 Python 开发PyDev http www pydev org Eclipse 主页上没有任何内容告诉我要选择什么 并且 PyDev 文档假设我已经安装了 Eclipse 我选择哪个 Eclip
  • 错误:在 Google 应用引擎上部署节点 js 时找不到模块“/workspace/server.js”

    经过一周的搜索 我无法找到适用于我的 Node js 应用程序的应用程序引擎部署问题的解决方案 我已经用这个替换了原来的代码Express 的 hello world 示例 https expressjs com en starter he
  • 重定向到无状态会话的原始 URL

    我正在尝试创建无状态安全性 其中 JWT 令牌存储在 Cookie 而不是 SESSION 中 问题是如果没有会话SavedRequestAwareAuthenticationSuccessHandler不知道原始请求 在弹出身份验证页面之
  • SPA 模式下的 AngularJS 和元标记

    你们中有人已经找到了一种在 SPA 模式下使用 AngularJS 处理元标签的优雅方法吗 在基本模板中 我有一些默认的元标记 对于每条路线 每个控制器都会加载具有不同内容的不同视图 很正常 但是我如何更改每个页面的元标记呢 此外 有些页面
  • XAML UWP 浮出控件定位

    I am implementing a Flyout in a UWP app as you can see on the image below I want the AutoSuggestBox in the Flyout to app
  • 索引数组时应该始终使用 size_t 吗?

    我需要使用吗size t总是在索引数组时即使数组没有大到超过 int 的大小 这不是我应该什么时候使用的问题size t 我只想知道 例如 一个程序是否具有 2GB 可用内存 所有这些字段都可以通过 int32 进行索引 但该内存 虚拟内存
  • Java Swing - JLabel 位置

    我在设置 Jlabel 位置时遇到问题 我将内容窗格设置为某个 JPanel 我创建并尝试添加我的 JLabel JLabel mainTitle new JLabel SomeApp mainTitle setFont new Font
  • Laravel Blade 创建 url

    我有一个简单的问题 基本上我从数据库中获取网站的名称并根据其名称创建一个链接 看起来像 foreach websites as website a class websites href asset website gt name a en
  • 经过一段时间后一张一张地显示图像

    我是前端开发的新人 我面临的一个主要问题是我有 3 个图像相互放置 现在我想移动一个图像 以便另一个图像出现 然后它消失 第三个图像在经过一段时间后出现时间间隔 我希望在我的网站中的同一位置上放置三张图像 但只想在一段时间后一张接一张地查看
  • 如何在需要时获取 cordova 2.9 的电池电量?

    window addEventListener batterystatus onBatteryStatus false function onBatteryStatus info Handle the online event consol
  • Magento Rest API - oAuth 错误

    我是第一次使用 Magento Rest API 我浏览了 Rest API 的教程http www magentocommerce com api rest并尝试了一个通过 API 获取产品的示例 callbackUrl http loc
  • MSBuild 使用项目引用正确构建项目,但不是从解决方案构建项目

    当我构建一个包含 2 个项目 B csproj 和 C csproj 具有内部项目引用 的 A sln 时 它会在 MSBuild 中引发引用错误 但是当我在 MSBuild 中分别构建 B csproj 和 C csproj 时 它不会抛
  • 如何从另一个屏幕重置 Flutter 中的表单?

    如何重置 清除 flutter 应用程序中的表单字段 一旦数据提交到服务器 在我的应用程序中 我有 2 个页面 第一页输入表格详细信息 如姓名 地址等 第二页是上传图片 第一页将数据推送到第二页 这里我没有进行推送替换 意味着第二页位于第一
  • C# 创建具有所有可能组合的字符串

    所以我有一个需要字符串的方法 该字符串由一个常量值和 2 个布尔值 2 个常量整数和一个可以是 10 20 或 30 的整数组成 这都是一个字符串 其中参数由下划线分隔 Example string value horse string c
  • Angular - 如何过滤 ngFor 到特定对象属性数据

    我在内存数据 service ts 中有这些数据 import InMemoryDbService from angular in memory web api export class InMemoryDataService implem
  • AS3 无法从 Java 发送的套接字解​​码 AMF3 对象

    我有一个 java 套接字服务器 它在连接时将 Animal 对象发送到 Flash 客户端 对象的发送方式如下 Amf3Output amf3Output new Amf3Output SerializationContext getSe
  • 在 Microsoft Graph 中查询 OneNote 页面的内容返回 10019 错误

    某个部分中的某些页面会因 API 调用失败而失败500错误 查询网址为 https graph microsoft com v1 0 me onenote pages page id content 响应是 error code 10019
  • 180 度旋转 div 只能从一侧点击

    我遇到了一个相当奇怪的问题 我有一个可以通过 CSS3 旋转的 div 该 div 有一个前 div 子级和后 div 子级 后 div 具有 webkit transform rotateY 180deg set 问题是 一旦旋转父元素以
  • 当您的应用程序具有测试目录时,在 Django 中运行特定的测试用例

    Django 文档 http docs djangoproject com en 1 3 topics testing running tests http docs djangoproject com en 1 3 topics test