单元测试

使用Jenkins搭建iOS开发的CI服务器

ⅰ亾dé卋堺 提交于 2019-11-29 01:57:10
目录 简介 下载并运行 Jenkins配置 安装git插件 E-mail设置 自动化构建 远程仓库设置 触发条件设置 编译设置 编译后行为设置 单元测试 最后 简介 持续集成CI(continuous integration)是一种可以增加项目可见性,降低项目失败风险的开发实践。iOS开发中CI的选择有很多,比如可以使用Apple提供的Bots来完成自动化构建和单元测试,其优点就是和Xcode深度集成,只需几步配置就可以完成,缺点就是不够灵活,可定制化程度不高。这篇文章主要讲解如何使用开源社区的一个CI工具Jenkins来搭建iOS开发的CI环境。如果是搭建单独CI服务器的话,就需要一台单独的mac机器了。 下载并运行 打开Jenkins的 官网 ,在页面的右侧,点击下载最新版本的Jenkins的war包。 下载完成后,打开terminal,进入到war包所在目录,执行命令: java -jar jenkins.war --httpPort=8888 httpPort指定的就是Jenkins所使用的http端口,这里指定8888,可根据具体情况修改。待Jenkins启动后,打开浏览器输入地址: http://localhost:8888/ 便可以打开Jenkins的管理界面了。 Jenkins配置 安装git插件 Jenkins默认没有安装git插件,需要手动选择安装

初识pytest

老子叫甜甜 提交于 2019-11-29 00:30:16
pytest是python的一种单元测试框架(非自带,需要安装),与python自带的unitest测试框架相比,使用起来更加简洁、效率更高 来源: https://www.cnblogs.com/wang-mengmeng/p/11435610.html

黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系

旧巷老猫 提交于 2019-11-28 23:29:23
对于开发人员来说,往往对各种测试方法感到疑惑。特别是在整合代码的时候,我们就能深刻感觉受到测试的重要性。很多开发人员只注重写代码,轻视测试的重要性。总是代码一写完提交然后就交给测试组测试了,没多久测试组发回测试报告。然后又苦恼的修改自己代码的bug,慢慢地就开始讨厌测试组人员。没有经过自己细心测试的代码,不仅浪费了别人时间更影响到了自己的心情。 企业级项目实战(带源码)地址 : http://zz563143188.iteye.com/blog/1825168 收集五年的开发资料下载地址: http://pan.baidu.com/share/home?uk=4076915866&view=share 接下来为大家细心讲述一下各种测试应用的环境及作用 一、测试环境和角色 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试 : 这些测试的范围正好是逐步递增的关系,但是测试的人员角色是不同。 黑盒测试、白盒测试、单元测试:开发人员分在不同的开发阶段要做的事情 黑盒测试、集成测试、系统测试:测试人员在测试周期内级层做的工作 验收测试:一般是在用户方做的工作 二、根据不同的范围 测试可以分为单元测试、集成测试、系统测试和验收测试。 体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。 三、测试的功能 1.单元测试 粒度最小,一般由开发小组采用白盒方式来测试

软件测试的艺术(读书笔记7)

六眼飞鱼酱① 提交于 2019-11-28 21:48:36
下面继续本书第四部分的读书笔记部分 第四部分 开发中的调试和测试思想   第8章 调试;第9章 敏捷开发模式下的测试 第9章 敏捷开发模式下的测试   随着市场竞争的日趋激烈,今天的商业项目需要不断缩短发布时间,同时还要不断地为客户提供高质量的产品。而老一套的开发模式很难适应当今的竞争环境,所以有一些开发人员就开始讨论轻量化和快速的开发方法。这就是著名的《敏捷软件开发宣言》,这份宣言没有僵化的开发方法和复杂的技术结构,而更像是一份针对客户和开发个体的箴言警局。 1、敏捷开发的特征   从敏捷软件开发宣言可以发现敏捷开发的一些特征:   (1)客户参与     围绕以客户需求为导向的开发过程,需要让客户尽早参与到开发周期中,并一直到其结束;如果没有客户参与,敏捷开发等同失败,这时可以选择传统的开发流程。   (2)迭代开发     敏捷开发提倡迭代式和增量式的开发模式。   (3)测试驱动     测试在其中发挥重要作用,依赖单元测试和验收测试(极限编程)。 2、敏捷测试的特征   敏捷测试要求每个人参与到测试计划的设计、实现及执行中去。客户通过定义用例集以及程序属性参与到定义验收测试的设计中来。开发者和测试者打造可以进行功能自动化的测试组件。敏捷测试要求每个人参与,需要有大量的沟通与协作工作。   (1)客户参与     在客户参与阶段,客户需要参与到开发周期来定义验收测试的设计。

单元测试实战(一)

梦想与她 提交于 2019-11-28 20:10:59
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 如果觉得我的文章对您有用,请随意打赏,您的支持将鼓励我继续创作 : WeChat 丶 Alipay 丶 Add me 目录 一、为什么要做单元测试,以及适用项目 1.回顾 2.价值 3.适用项目 二、UT开展 1.UT计划 2.UT设计 3.UT实现 一、为什么要做单元测试,以及适用项目 1.回顾 说明: 测试方法中的白盒测试就是本项目的单元测试 2.价值 提前介入测试,发现代码级别的bug 3.适用项目 1.大型的、项目周期长 2.新系统、新团队 3.涉及财产、生命的项目 二、UT开展 1.UT计划 1.确定单元测试范围 1)依据标准:二八原则 20%的代码中隐藏了80%的缺陷 2)如何确定20%的代码 使用频率:高 复用性:全新的丶部分复用丶全部复用 开发人员背景:技术(强 一般 弱)丶业务(熟悉 一般 不熟) 复杂度:一般认为复杂度在7级以上的为20%的代码 优先级高的那么也就是那20%的代码,当对项目某个模块进行单元测试时,则需要进行制测试范围表进行如下分析 2.确定评估标准 逻辑覆盖率: 1) 语句覆盖率 什么是语句:非分支,分判断 计算方式:被测的语句/全部的语句 示例:通过代码实现用户输入一个数字,判断是否大于0,如果大于0那么对该数字-1,否则+1 将如上代码编写流程图 从流程图中开始到结束

Python单元测试工具doctest和unittest

允我心安 提交于 2019-11-28 16:30:07
Python标准库包含两个测试工具。 doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。 unittest:一个通用的测试框架。 一、使用doctest进行单元测试 创建文件mymath.py,内容 def square(x): ''' 计算平方并返回结果(下面是单元测试的格式) >>> square(2) 4 >>> square(3) 9 ''' return x * x if __name__ == '__main__': import doctest,mymath doctest.testmod(mymath) 在Sublime Text 3中运行只是提示[Finished in 0.2s]。 在cmd命令下切换到mymath.py所在目录,运行python mymath.py -v后,有提示测试详细信息,测试通过。如下图: 把函数square里面的return x * x 改成 return x / x。 再次运行python mymath.py -v,提示测试不通过,如下图: 二、使用unittest进行单元测试 还是用mymath.py测试,内容: def square(x): return x * x 新建单元测试文件test_math.py,内容: import unittest, mymath class mathTestCase

单元测试

血红的双手。 提交于 2019-11-28 16:08:54
一、概述 软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。 二、测试分类 1、按照是否知道源代码 黑盒测试:不关心具体的逻辑代码,只测功能 白盒测试:测试逻辑代码 灰盒测试:介于黑盒和白盒之间 2、从软件开发的过程 单元测试:Unit Testing 集成测试:Integrated Testing 系统测试:System Testing 3、根据测试的次数 冒烟测试 压力测试 三、Junit单元测试 Junit是一个基于Java语言的单元测试框架。是白盒测试的一种技术。 1、注意事项【重点】 测试方法上必须使用@Test进行修饰 测试方法必须使用public void 进行修饰,不能带任何的参数 新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开 测试类所在的包名应该和被测试类所在的包名保持一致,末尾【.test】 测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖 测试类使用Test作为类名的后缀(不是必须) 测试方法使用test作为方法名的前缀(不是必须) 2、一般测试TEST注解 public class UserDaoTest { @Test public void testAdd ( ) { UserDao userDao = new UserDao ( ) ; User user = new

你会写单元测试吗

耗尽温柔 提交于 2019-11-28 16:07:01
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。 Github: https://github.com/hylinux1024 微信公众号:终身开发者(angrycode) 也许你已经听说过 Test Driven Development ,但不知道你是否遵循这个规则呢?其实我自己在写代码的时候也很少会先写单元测试再写业务功能逻辑。这不我也今天也来学习如何在 Python 中写单元测试。 0x00 unittest Python 中的 unittest 单元测试框架跟其它语言如 JUnit 是类似的。它支持测试自动化、配置共享以及关机代码测试。 假设在我的项目目录下有一个 mysum 模块用于计算列表中各个数之和。 还有一个 test_mysum.py 用于编写单元测试的文件。 myproject/ │ ├── mysum/ │ └── __init__.py └── unittests └── test_mysum.py 打开 mysum 模块中的 __init__.py 文件。 添加下面的方法 def sum(args): total = 0 for arg in args: total += arg return total 打开 test_mysum

单元测试之NUnit三

六月ゝ 毕业季﹏ 提交于 2019-11-28 15:26:01
NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考 官方文档 。初次写博客,望大家指点。 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 除了Assert断言外,NUnit还提供了其它直接断言的方法,比如string、directory、file等。另外,如有需要还可自行扩展。 String Assert 实现了string 类型的断言,包含以下方法: public class StringAssertTest { [Test] public void Contains_Test() { string expected = "a";//期望值。被包含 string actual = "acb";//真是值。包含 StringAssert.Contains(expected, actual); expected = "d"; StringAssert.DoesNotContain(expected, actual); } [Test] public void StartsWith_Test() { string actual = "dcc"; string expected = "d"; StringAssert.StartsWith(expected, actual); expected = "c"; StringAssert

单元测试之NUnit一

試著忘記壹切 提交于 2019-11-28 15:25:15
NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考 官方文档 。初次写博客,望大家指点。 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 NUnit是什么? NUnit .net 语言单元测试框架。最初是从JUnit移植过来的,目前已经发布3.0版本。新版本重写了许多新特性,并且支持许多 .net 平台。 有关NUnit的介绍详见官网。 选择产品 NUnit提供两种运行方式执行测试代码。控制台运行启动快,但不利于交互。图形运行是一个WinForm程序,灵活控制测试代码,并且提供图形界面反馈。 NUnit也提供了安装程序和Nuget包安装两种方式。 这里选择控制台执行方式和Nuget安装依赖。 创建单元测试项目 使用VS 2019 创建NUnit测试项目。 VS 集成Nunit测试项目,创建好的项目包含了NUnit的两个包:UNnit和NUnit3TestAdapter。 注意:这两个包的版本必须一致,否则单元测试无法运行。 写个测试代码 新建一个测试类:FirstTestClass,编写一个测试方法。把测试方法使用NUnit属性标记为Test,方法里执行断言Assert.IsTrue()。 public class FirstTestClass { [Test] public void FirstTestMethod() { bool