当前位置: 首页 > news >正文

网站广告位价格一般多少wordpress留言板代码

网站广告位价格一般多少,wordpress留言板代码,制作网站升上去,石家庄电力设计公司在文章Python之单元测试使用的一点心得中#xff0c;笔者介绍了自己在使用Python测试工具coverge的一点心得#xff0c;包括#xff1a; 使用coverage模块计算代码测试覆盖率使用coverage api计算代码测试覆盖率coverage配置文件的使用coverage badge的生成 本文在此基础上…  在文章Python之单元测试使用的一点心得中笔者介绍了自己在使用Python测试工具coverge的一点心得包括 使用coverage模块计算代码测试覆盖率使用coverage api计算代码测试覆盖率coverage配置文件的使用coverage badge的生成 本文在此基础上将会介绍coverage的高阶使用包括 Flask API测试coverage多文件测试coverage的Gitlab CI/CD集成coverage badge生成 本文中使用coverage的版本均为7.3.0。 Flask API测试 在unittest测试框架如果对Flask API进行测试时使用HTTP请求那么将无法得到代码覆盖率。   我们有如下的示例Flask服务 # -*- coding: utf-8 -*- from flask import Flaskapp Flask(__name__)app.route(/) def index():return Hello indexapp.route(/test) def test():return Hello testif __name__ __main__:app.run(host0.0.0.0, port5000, debugTrue)正确的测试代码如下 # -*- coding: utf-8 -*- import unittestfrom flask_app import appclass AppTestCase(unittest.TestCase):def setUp(self):self.ctx app.app_context()self.ctx.push()self.client app.test_client()def tearDown(self):self.ctx.pop()def test_case1(self):response self.client.get(/)self.assertEqual(response.status_code, 200)self.assertEqual(response.text, Hello index)def test_case2(self):response self.client.get(/test)self.assertEqual(response.status_code, 200)self.assertEqual(response.text, Hello test)if __name__ __main__:suite unittest.TestSuite()suite.addTest(AppTestCase(test_case1))suite.addTest(AppTestCase(test_case2))run unittest.TextTestRunner()run.run(suite)coverage多文件测试 我们有如下的实现两个变量相加的代码func_add.py # -*- coding: utf-8 -*- def add(a, b):if isinstance(a, str) and isinstance(b, str):return a belif isinstance(a, list) and isinstance(b, list):return a belif isinstance(a, (int, float)) and isinstance(b, (int, float)):return a belse:return None两个测试文件test_func_add1.py和test_func_add2.py内容如下 # -*- coding: utf-8 -*- import unittestfrom func_add import addclass TestAdd(unittest.TestCase):def setUp(self):passdef test_add_case1(self):a Hellob Worldres add(a, b)print(res)self.assertEqual(res, HelloWorld)def test_add_case2(self):a 1b 2res add(a, b)print(res)self.assertEqual(res, 3)if __name__ __main__:# 部分用例测试# 构造一个容器用来存放我们的测试用例suite unittest.TestSuite()# 添加类中的测试用例suite.addTest(TestAdd(test_add_case1))suite.addTest(TestAdd(test_add_case2))run unittest.TextTestRunner()run.run(suite)# -*- coding: utf-8 -*- import unittestfrom func_add import addclass TestAdd(unittest.TestCase):def setUp(self):passdef test_add_case3(self):a [1, 2]b [3]res add(a, b)print(res)self.assertEqual(res, [1, 2, 3])def test_add_case4(self):a 2b 3res add(a, b)print(None)self.assertEqual(res, None)if __name__ __main__:# 部分用例测试# 构造一个容器用来存放我们的测试用例suite unittest.TestSuite()# 添加类中的测试用例suite.addTest(TestAdd(test_add_case3))suite.addTest(TestAdd(test_add_case4))run unittest.TextTestRunner()run.run(suite)使用命令进行测试 coverage run test_func_add1.py coverage run test_func_add2.py coverage report生成的代码测试覆盖率如下 Name Stmts Miss Cover --------------------------------- func_add.py 8 2 75% --------------------------------- TOTAL 8 2 75%这是不符合我们预期的因为在这两个测试文件中我们对所有的代码都进行了测试理论上测试覆盖率应该为100%之所以这样是因为coverage run命令运行时每一次都会覆盖掉之前的测试。正确的测试命令以文件追加的形式如下 coverage run test_func_add1.py coverage run --append test_func_add2.py coverage report此时代码覆盖率如下 Name Stmts Miss Cover --------------------------------- func_add.py 8 0 100% --------------------------------- TOTAL 8 0 100%coverage的Gitlab CI/CD集成 在文章Gitlab CI/CD入门一Python项目的CI演示中笔者介绍了Gitlab CI/CD的入门。在此基础上我们将集成coverage。   首先我们的test目录如下 . ├── __init__.py ├── func_add.py └── test_func_add.pyfunc_add.py为实现两个变量相加的代码如前述。test_func_add.py为测试代码如下 # -*- coding: utf-8 -*- import unittestfrom func_add import addclass TestAdd(unittest.TestCase):def setUp(self):passdef test_add_case1(self):a Hellob Worldres add(a, b)print(res)self.assertEqual(res, HelloWorld)def test_add_case2(self):a 1b 2res add(a, b)print(res)self.assertEqual(res, 3)def test_add_case3(self):a [1, 2]b [3]res add(a, b)print(res)self.assertEqual(res, [1, 2, 3])def test_add_case4(self):a 2b 3res add(a, b)print(None)self.assertEqual(res, None)if __name__ __main__:# 部分用例测试# 构造一个容器用来存放我们的测试用例suite unittest.TestSuite()# 添加类中的测试用例suite.addTest(TestAdd(test_add_case1))suite.addTest(TestAdd(test_add_case2))suite.addTest(TestAdd(test_add_case3))suite.addTest(TestAdd(test_add_case4))run unittest.TextTestRunner()run.run(suite)CI/CD依赖.gitlab-ci.yml配置如下 stages:- build- unittestbuild-job:stage: buildscript:- echo date- echo Hello, $GITLAB_USER_LOGIN!- echo This job deploys something from the $CI_COMMIT_BRANCH branch.unit_test_job:stage: unittestimage: python:3.9-alpine3.17script:- pip3 install coverage7.3.0- coverage run test/test_func_add.py- coverage reportcoverage: /TOTAL.*\s(\d%)$/运行CI/CD结果如下图   在Gitlab项目中的Settings - CI/CD - General pipelines中点击Expand会显示CI/CD已内置Pipeline status, Coverage report, Latest release其中Coverage repor如下图   最后我们要在项目中加入coverage badge徽章在Gitlab项目中的Settings - General - Badge中点击Expand再点击Add badgecoverage徽章的配置如下 本项目中只有main分支因此不需要设置变量实际在使用过程中需要配置变量如default_branch等。   以上配置完毕后项目徽章显示如下 以上配置过程已开源项目网址为https://gitlab.com/jclian91/gitlab_ci_test 。 coverage badge生成 coverage badge生成方式分为静态和动态。   动态的话可使用coverage-badge或者genbadge模块。   静态的话可使用网站https://shields.io/badges/static-badge .   比如我们生成编程语言的徽章如下图 之后我们就可以用该网址访问徽章了。 总结 本文介绍了测试工具coverage的高阶使用希望能对读者有所启发~
http://www.hkea.cn/news/14526945/

相关文章:

  • 企业建设网站的重要性下载站用什么网站系统
  • 网站内怎样做关键词有效果网站目录命名规则
  • 网站团队的建设网站 上一篇 下一篇
  • 海西高端网站建设公司室内设计方案ppt案例
  • 建设银行梅李分行网站汉中seo培训
  • 做网站容易吧东莞哪家公司做网站好
  • 网站主机空间企业网站开发文档
  • 网站设计实验报告内容与步骤用.net做购物网站
  • 建设网站有什么好处昆明市住房和城乡建设局网站上看的
  • django 做网站的代码好用的ppt模板网站
  • 坪山附近公司做网站建设哪家技术好学校 网站建设工作小组
  • 建设人行官方网站房屋建筑学课程设计图纸
  • 如何制作公司网站免费网站安装系统怎么安装教程视频
  • 沈阳网站推广wordpress 注册邮件设置密码
  • 谁会建设网站百度里面的站长工具怎么取消
  • 毕业设计做旅游网站仿快法务网站开发模板
  • 四川建设厅官方网站证书查询广告设计一般人能学吗
  • 贵阳有哪家做网站建设好点的手机网站 自适应屏幕
  • 做拍卖网站有哪些申请阿里巴巴网站首页
  • 最新域名网站查询简要描述网站开发过程
  • 郑州上市企业网站建设wordpress去掉搜索框
  • 正规网站建设官网南阳网站排名优化报价
  • 网上请人做软件的网站网站地图表现形式
  • 网站建设项目规划书目录遵义新闻头条
  • 网站 域名解析错误自己怎么手机做网站
  • wordpress制作小说站教程西安百度公司怎么样
  • 免费ppt模板的网站wordpress社交风主题
  • 网站推广 教程商城网站设计说明书
  • 西青集团网站建设网站建设价目
  • 保山网站开发网络营销策划步骤有哪些