前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Django 2.2文档系列】编写自定义manage.py 命令

【Django 2.2文档系列】编写自定义manage.py 命令

作者头像
BigYoung小站
发布于 2020-05-06 06:10:40
发布于 2020-05-06 06:10:40
3700
举报
文章被收录于专栏:BigYoung小站BigYoung小站

官网文档地址:编写自定义 django-admin 命令

开篇话:

python manage.py <command> 的命令我们用了很多,要是我们想要使用一些特定的较长的命令时,比如:python manage.py test --keepdb --settings=appname.test_settings(命令作用:运行项目测试时,使用指定的配置文件),这时每次运行的就很麻烦,可以通过设定自定义manage.py命令来实现。

操作步骤要点:

第一步:新建自定义命令模块

在已有的项目中,在你要设置的项目app下,增加management/commands目录,新建python模块,模块名不能以“_”开头,否则模块不会被设置为自定义命令。设置的自定义命令为模块的名字,创建好后的目录树如下:

代码语言:txt
AI代码解释
复制
appname/        # django项目下的某个app
    __init__.py
    models.py
    management/
        commands/
            _private.py # 这模块不会被加入到自定义命令
            newtest.py    # 这个模块会被设置为自定义命令,命令为模块名
    tests.py
    views.py
代码语言:txt
AI代码解释
复制
注意:添加自定义命令的app需要在`settings.py`INSTALLED_APPS中注册。
第二步:编写自定义命令功能

设置newtest.py要实现的功能,newtest.py的内容:

代码语言:txt
AI代码解释
复制
import os
import traceback
from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):

    def add_arguments(self, parser):

        parser.add_argument(
            dest='appname', # 参数名字
            type=str,   # 参数类型
            help='测试哪个app', # 帮助信息
        )

    def handle(self, *args, **options):
        try:
            shell_info ='python manage.py test %s --keepdb  --settings=appname.test_settings' % (options['appname'])
            os.system(shell_info)
            self.stdout.write(self.style.SUCCESS('命令%s执行成功, 参数为%s' % (__file__, options['appname'])))
        except:
            self.stdout.write(traceback.format_exc())
            self.stdout.write(self.style.ERROR('命令执行出错'))

以上功能解释:执行python manage.py newtest appname时,就会调用test测试,并运行指定的测试专用settings.py配置。

代码语言:txt
AI代码解释
复制
注意:要打印输出信息,要使用:`self.stdout.write("Unterminated line", ending='')`,`ending=''参数是指定输出信息后以什么结尾,不配置参数默认是换行符。`

如果各位有什么不明白的地方,可以留言回复。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BigYoung小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于Pytest+Requests+Allure实现接口自动化测试
1、工具层 将get、post等常用行为进行二次封装。 代码(api_key.py)如下:
测试开发技术
2023/08/21
5990
基于Pytest+Requests+Allure实现接口自动化测试
Python+Requests+Pytest+YAML+Allure实现接口自动化
本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对之前开发的一个接口项目来进行学习,通过 Python+Requests 来发送和处理HTTP协议的请求接口,使用 Pytest 作为测试执行器,使用 YAML 来管理测试数据,使用 Allure 来生成测试报告。
Python编程与实战
2021/07/06
3.3K0
pytest api做自动化测试
我们在做api测试的时候,如果只要测试单个接口,可以用httprunner。 这个工具的思维我们可以借鉴一下。 如果我们想灵活的应用呢,可以自己用数据驱动的方式,来实现自己的自动化框架。 用pytest就可以实现。 首先我们将charles的har包转换成yaml文件。 用命令
赵云龙龙
2021/05/10
7600
pytest api做自动化测试
Pytest+Allure美化测试报告
在学习pytest的时候,生成的html报告觉得实在不是很美观,查到资料有很多测试报告的第三方插件,不仅美观而且查看测试用例也很方便,那我们一起来学习下吧~
小雯子打豆豆
2020/06/16
1.3K0
Pytest+Allure美化测试报告
Python 自动化测试(五): Pytest 结合 Allure 生成测试报告
所以打造一个美观、一目了然的测试报告,清晰的反应质量问题,并提供给相关人员了解项目的整体状态,是非常必要的。
霍格沃兹测试开发
2020/10/28
1.8K0
Python 自动化测试(五): Pytest 结合 Allure 生成测试报告
Pytest自动化测试 - allure报告进阶
如果你想对测试用例进行严重等级划分,可以使用 @allure.severity 装饰器,它可以应用于函数,方法或整个类。
huofo
2022/03/18
3310
Pytest自动化测试 - allure报告进阶
Pytest+Allure接口自动化一些学习分享
大家好,我是林宗霖,是一名95后的测试猿,也是《自动化测试实战宝典:从小工到专家》这本书的读者,首先感谢狂师大大帮忙推荐本文。
测试开发技术
2020/09/28
1.1K0
Pytest+Allure接口自动化一些学习分享
接口自动化测试之pytest用例管理框架2
数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是参数化的应用。数据量小的测试用例可以使用代码的参数化来实现数据驱动,数据量大的情况下建议大家使用一种结构化的文件(例如yaml,json等)来对数据进行存储,然后在测试用例中读取这些数据。
用户6367961
2022/11/21
5800
接口自动化测试之pytest用例管理框架2
python自动化测试技术-Allure
大部分人可能做的是爬虫和web,数据分析方面的工作,今天分享个在自动化测试领域python能做什么样的事情,比如下方,是用python+pytest+allure生成的精美自动化测试报告,本文仅演示,用例个数较少,具体工作中根据项目来进行编写用例,allure测试报告现在已经非常流行,具体看下方图,测试用例个数、通过率、测试步骤执行过程、描述,都给我们详细的生成出来,这样的测试用例,拿出去给领导汇报,逼格绝对高。
测试开发社区
2019/09/20
1.5K0
python自动化测试技术-Allure
自动化测试用例规范
不管是市场需求还是测试效率而言,自动化测试都是作为测试工程师需要掌握的一门技术,并且在公司能够逐步的应用到常规的测试中,如回归测试。自动化测试的价值在于它能够有效的检测被测对象的质量并且能够给出有价值的结果信息,而且这个结果需要具备权威性,不需要太多人为的参与与干预。
无涯WuYa
2023/09/02
4880
自动化测试用例规范
Pytest+Allure+Jenkins接口自动化项目实战(一)
经过一周多时间,基于python+pytest+excel+allure框架的接口自动化测试初版已基本实现,包括基本配置读取、用例读取、用例执行、sql读取执行、前置数据准备、后置数据清理以及测试报告生成等,环境独立运行、项目独立运行、用例独立运行、jenkins集成、邮件发送暂未实现,再后期版本会再次推出,现在把整个框架设计思路和想法分享给大家来参考和借鉴。希望大家也能提供更好的思路和方法帮助我进行优化改进。整个过程中遇到的问题清参考Python自动化测试疑问及解决方案(一)Python自动化测试|如何解决前置模块及数据依赖(二)
王大力测试进阶之路
2020/02/19
3.3K0
Pytest+Allure+Jenkins接口自动化项目实战(一)
pytest+requests+allure实现接口自动化测试系列(10)-多环境切换和集成美观的allure报告
分享好几篇,今天来分享如何集成allure测试报告和多环境切换,分享完这篇后,这个接口自动化测试也差不多完成一些基本的功能,但是还有很多功能可以扩展,比如Email发送测试结果、根据yaml生成测试脚本、编写相关装饰器记录日志等
搁浅同学
2022/07/21
1K0
pytest+requests+allure实现接口自动化测试系列(10)-多环境切换和集成美观的allure报告
Python测试框架pytest(26)测试报告Allure - 特性
Environment 是环境变量,报告默认是没有任何变量参数的,是需要自己配置的。
wangmcn
2022/07/26
7820
Python测试框架pytest(26)测试报告Allure - 特性
pytest+requests+allure实现接口自动化测试系列(1)-requests介绍
之前的几篇将pytest常用的功能都介绍的差不多了,后面接下来会介绍基于pytest基础上实现一个基本功能的接口自动化测试框架
搁浅同学
2022/07/21
1.2K0
Pytest学习笔记7——接口自动化测试框架实战附源码(开荒篇)
  前面介绍了pytest框架一些基础知识与基本用法,掌握了一定基础后,我们可以进行项目实战,搭建pytest接口自动测试框架。
全栈测试开发日记
2023/02/02
1.7K1
Pytest学习笔记7——接口自动化测试框架实战附源码(开荒篇)
tep1.0.0正式版发布且将不再维护
根据pypistats统计,tep在pypi的下载量达到了1w,对于纯个人研发的一款测试小工具来说,已经算不错了,要知道HttpRunner也才6w啊。tep可以说是我在接口自动化测试这个领域的技术沉淀,凝结了个人经验和所见所闻的精华之作,它基于Pytest,借鉴了JMeter、RobotFramework、HttpRunner、京东接口测试平台等各种优秀自动化设计思想,小小工具,蕴含大大能量。相信它也已经影响了不少人,让初学者知道Pytest该怎么玩,让入门者知道Pytest工程化是什么样子,让熟练者可以参考对照优化代码。然而当我把tep优化到1.0.0正式版以后,为什么却选择停止维护呢? 一、 小工具的表达力不够。当我试图用tep来描绘更多自动化设计思想时,瞬间感觉到了一丝苍白,我不一定讲的清楚,别人也不一定能够理解,用代码来交流始终存在着一定门槛。二、每个人对Pytest使用方式不同 。Pytest本身是测试框架,很多人用它来做二次开发,设计”测试框架“,有好的,有差的,不管白猫黑猫能逮到耗子就是好猫,不管设计的如何,能实现接口自动化项目落地就是好框架。tep要想在这个方向上,建立一套标准,几乎是不可能的。这不并意味我会就此放弃Pytest,相反,我将致力于Pytest平台化,从做小工具改为做测试平台。 测试平台具有非常直观的强大表现力,并且具有工程化的规范性,一看就懂,一用就会,一点就通。测试平台也是能更好的做技术沉淀的,如果说写小工具是玩玩而已,那么开发测试平台就是认真搞技术了。比如,如何提高Pytest并行执行的效率,我相信测试平台会比小工具,更能给出一个比较完整的解决方案。下次使用Pytest,也许就不是从tep startproject开始了,而是docker run。
dongfanger
2022/12/31
8620
tep1.0.0正式版发布且将不再维护
Python+Pytest+Allure+Json 最全Api自动化框架之邮件发送功能
Python+Pytest+Allure+Json 最全Api自动化框架 分享后,受到许多小伙伴的关注,最近一直在完善这个 API 自动化框架的功能,准备在框架成熟后分享给更多需要的小伙伴们。
Wu_Candy
2022/07/04
1K0
Python+Pytest+Allure+Json 最全Api自动化框架之邮件发送功能
当Pytest遇上MVC分层设计自动化用例就该这么写
数据写在代码里,追求快速编写用例,是我设计tep的一个特点,这在个人编写时是一种非常良好的体验。但相比于HttpRunner、JMeter等来说,总觉得还差点意思。思考良久,总结为三个字:工程化。工程化是我近一年在学习Java并参与了2个测试平台模块开发,和写了几个小工具后,感受到的一种编程思想。而其中最明显的就是Spring的MVC分层设计。为了让tep更工程化,后续版本将以MVC模块编写用例为准,同时会兼容之前的脚本式快速编写。
dongfanger
2022/12/28
3800
当Pytest遇上MVC分层设计自动化用例就该这么写
pytest+requests+allure实现接口自动化测试系列(9)-封装自己的断言
上一篇分享了接口之间的数据依赖,我们的测试结构数据,还有一部分没有说明,就是断言这一部分,下面的数据结构,我设计的需要断言的放在
搁浅同学
2022/07/21
2.2K0
pytest+requests+allure实现接口自动化测试系列(9)-封装自己的断言
pytest学习和使用23-通俗易懂的聊聊allure常用特性集合及使用方法说明
1 @allure.step() @allure.step()装饰器,可以让测试用例在allure报告中显示详细的测试过程; step() 只有一个参数title,传什么就在allure上就显示什么; 举例: # -*- coding:utf-8 -*- # 作者:虫无涯 # 日期:2023/3/28 # 文件名称:test_allure_step.py # 作用:@allure.step特性 # 联系:VX(NoamaNelson) # 博客:https://blog.csdn.net/NoamaNel
虫无涯
2023/03/30
2.7K0
推荐阅读
相关推荐
基于Pytest+Requests+Allure实现接口自动化测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档