单元测试

maven打包

懵懂的女人 提交于 2019-11-26 16:53:53
打开开始菜单,执行cmd命令,打开cmd窗口。 执行命令:mvn clean package -Dmaven.test.skip=true clean:删除之前编译的代码。 package:打包。 Dmaven.test.skip=true:不编译单元测试的代码。 来源: https://www.cnblogs.com/DreamFather/p/11327564.html

使用Spock框架进行单元测试

佐手、 提交于 2019-11-26 16:34:11
1. 关于单元测试 很多人一谈到单元测试就会想到xUnit框架。对于一些java新人来说,会用jUnit就是会写单元测试,高级点的会捣鼓一下testng,然后就认为自己掌握了单元测试。 而实际上,很多人不怎么会写单元测试,甚至不知道单元测试究竟是干什么的。写单元测试要比写代码要难上许多,而这里说的难度跟框架没什么关系。 所以,在开始介绍spock之前,需要先抛开框架,谈谈单元测试本身的事情。在理解了单元测试之后才能更清楚spock框架是什么,以及它否能够更优雅的解决你的问题。 1.1.1. 单元测试是什么 写代码免不了要做测试,测试有很多种,对于java来说,最初级的就是写个main函数运行一下看看结果,高级的可以用各种高大上的复杂的测试系统。每种测试都有它的关注点,比如测试功能是不是正确,或者运行状态稳不稳定,或者能承受多少负载压力,等等。 那么所谓的单元测试是什么?这里直接引用维基百科上的词条说明: 单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 所以,我眼中的“合格的”单元测试需要满足几个条件: 测试的是一个代码单元内部的逻辑

如何对 Jenkins 共享库进行单元测试

僤鯓⒐⒋嵵緔 提交于 2019-11-26 16:33:49
本文首发于: Jenkins 中文社区 Jenkins 共享库是除了 Jenkins 插件外,另一种扩展 Jenkins 流水线的技术。通过它,可以轻松地自定义步骤,还可以对现有的流水线逻辑进行一定程度的抽象与封装。至于如何写及如何使用它,读者朋友可以移步附录中的官方文档。 对共享库进行单元测试的原因 但是如何对它进行单元测试呢?共享库越来越大时,你不得不考虑这个问题。因为如果你不在早期就开始单元测试,共享库后期可能就会发展成如下图所示的“艺术品”——能工作,但是脆弱到没有人敢动。 [图片来自网络,侵权必删] 这就是代码越写越慢的原因之一。后人要不断地填前人有意无意挖的坑。 共享库单元测试搭建 共享库官方文档介绍的代码仓库结构 (root) +- src # Groovy source files | +- org | +- foo | +- Bar.groovy # for org.foo.Bar class +- vars | +- foo.groovy # for global 'foo' variable | +- foo.txt # help for 'foo' variable +- resources # resource files (external libraries only) | +- org | +- foo | +- bar.json # static

单元测试之断言

北城以北 提交于 2019-11-26 16:14:41
单元测试之断言 作为前端开发,很少去自己写单元测试。对于单元测试的了解也很少,自学了一点关于单元测试断言的知识,有了一些自己的个人理解,记录下来,方便下次使用时查阅。 什么是断言 当你对类,模块或者方法的可以接受的输入和输出有着很明确的定义和认识,当程序的输出结果和输入不匹配时, 你想让程序有一个明确的返回。比如:我明确地知道 1+1=2 ,我现在就想知道我输入 1+1 会不会得到2。如果不是程序返回一个错误。这时候我们通常会使用到 断言 。 断言 就是专门用来验证输出和期望是否一致的一个工具。在内容的实现上,它是通过比较一个实际值 actual 和一个期望值 expected 来实现的。下面介绍一个使用较为广泛的断言库 chai.js chai.js断言库 安装和导入 npm i chai import chai from 'chai' let expect = chai.expect; 使用 let foo = 'bar'; expect(foo).to.equal('bar'); chai的使用是类似于链式调用的形式。以 expect(foo).to.be.a('string'); 为例, 通过 . 我么你可以把这个链式分为几个部分: expect(foo) to be a('string') 我们逐步来理解这几个部分: expect(foo) :是你要断言的对象

Selenium自行整理【四十二】

泄露秘密 提交于 2019-11-26 13:07:59
7.2.6、单元测试中的概念 Junit 单元测试的学习,临近收尾,我们来回顾它所包含的几个概念,当然这几个概念来自于 Python的 unittest 的文档中开篇介绍,我发现它同样适用于 Junit 单元测试框架,这几个概念分别是:test fixture, testcase, test suite, test runner,我觉得只有理解了这几个概念,才能真正的理解单元测试的基本原理。 1、 test case 一个 TestCase 的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。 2、 test suite 对一个功能的验证往往是需要多测试用例的,可以把多的测试用例集合在一起执行,这就产生了测试套件 TestSuite 的概念,它用来组装单个测试用例,而且 TestSuite 也可以嵌套 TestSuite。可以通过@SuiteClasses 加载 TestCase 到 TestSuite 中,再返回一个 TestSuite 实例。 3、 test runner @RunWith 是来执行测试套件中的测试用例的

Web项目如何做单元测试

人走茶凉 提交于 2019-11-26 10:58:44
你可能会用单元测试框架,python的unittest、pytest,Java的Junit、testNG等。 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x): return x + 1 def test_answer(): assert inc(3) == 4 inc() 是定义的一个被测函数, test_anserver() 用于测试上面的一段代码。 通过pytest运行上面的代码: > pytest test_demo.py ====================== test session starts ======================= platform win32 -- Python 3.7.1, pytest-5.0.1, py-1.8.0, pluggy-0.12.0 rootdir: D:\vipcn\demo plugins: cov-2.7.1, forked-1.0.2, html-1.20.0, metadata-1.8.0, ordering-0.6, parallel-0.0.9, rerunfailures-7.0, xdist-1.28.0, seleniumbase-1.23.10 collected 1 item test_demo.py . [100%] ==============

人生苦短?试试Groovy进行单元测试

拥有回忆 提交于 2019-11-25 23:12:37
如果您今天正在编程,那么您很可能听说过单元测试或测试驱动的开发过程。我还没有遇到一个既没有听说过又没有听说过单元测试并不重要的程序员。在随意的讨论中,大多数程序员似乎认为单元测试非常重要。 但是,当我开始使用代码并问“单元测试在哪里?”时,我得到了一个完全不同的故事。我最近在网上问我的程序员朋友为什么不这样做,以及为什么其他程序员不这样做呢?不要编写单元测试。当我问程序员或IT经理同样的问题时,我经常听到的第一答案是:“我没有时间”或类似的问题。通常会出现这样的论点,即使用单元测试编写应用程序要比不使用单元测试编写时间长20%,并且“我们受到时间限制”。 我的建议–当我们尝试解决时间不足的问题时,也许我们可以在娱乐性上做出一些贡献。 在实践中 我正在为一个应用程序设计原型,该应用程序将允许用户输入有关房屋装修项目的信息,然后与朋友共享该项目的材料和工具信息。然后,朋友可以承诺贷款或购买项目中所需的一些材料或工具。基本上是用于家庭装修项目的“登记处”。 测试将在采用Project对象的方法上进行,遍历该项目的工具列表以查看该工具是否已经被承诺,并创建一个未被承诺的工具列表。然后,它将把该列表传递给将查询每个工具当前价格的服务。 原型是用Grails完成的,但是我们将用Java编写此方法: public List<Tool> neededToolList(Project project

软件测试面试题集合(一)

﹥>﹥吖頭↗ 提交于 2019-11-25 20:56:15
1.软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码 (coding)->测试(testing)->运行与维护(running maintrnacne) 2、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准:根据需求说明书、产品说明、原型图、设计文档等,确认实际结果 是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据, 1)可以根据同行或类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 2)根据用户的一般使用习惯,来确认是否是缺陷; 3)与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷; 合理的论述,向测试经理说明自己的判断的理由,等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。 3、给你一个网站,你如何测试? 首先,查找需求说明、网站设计等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性 能测试;数据库测试;安全性测试;兼容性测试 设计测试用例: 功能性测试可以包括,但不限于以下几个方面: 链接测试。链接是否正确跳转

maven打包忽略test文件夹

久未见 提交于 2019-11-25 20:37:12
当在项目中的test中写了单元测试后,在mvn install打包时会自动进行所有单元测试,所以这时需要忽略test文件夹 有两种方法: 1、用命令的方式:mvn install -Dmaven.test.skip=true 2、在pom.xml中配置    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> 来源: https://www.cnblogs.com/BonnieWss/p/11314155.html

单元测试软件-winAMS

我们两清 提交于 2019-11-25 18:48:29
winAMS -- 嵌入式软件单元测试 / 集成测试工具 CoverageMaster winAMS : 适用于嵌入式目标机代码的单元测试工具 全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具 不需要HookCode 直接使用目标机代码进行单元测试 联合静态解析工具[CasePlayer2],提供C1,MC/DC用优化测试计划(test case)制作功能 已取得第三方认证机构TUVSUD对适用于汽车机能安全ISO26262软件工具的认证 产品概要 [Coverage master winAMS]是以嵌入式软件的函数为单位,实施模块单元测试以及C0/C1/MCDC覆盖率测试(coverage test)的嵌入式软件自动化单元测试工具。目标机源代码通过交叉编译器生成目标机执行代码,通过跟实际处理器同样的模拟处理器环境进行单元测试,不需要对执行代码做任何变动,使高信赖性的模块测试成为可能。在汽车控制软件这样的对安全性要求极高的领域,单元测试已经成为不可缺少的一部分。使用目标机代码进行单元测试也是为了符合汽车行业中ISO26262功能安全认证标准。 产品特长 全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具 作为能够检验出仅凭系统测试以及整体测试无法发现的[潜在错误]的检测方法,[单元测试]在嵌入式开发领域受到广泛重视