Unity3d官方测试插件学习-单元测试,集成测试
2016/11/27更新:官方的测试工具有许多问题,我修改了一个版本 https://git.oschina.net/Hont/UnitTest_Modifyed
支持切场景,异常不失败等
其实Unity很早就有测试支持,从mono编辑器的UnitTest选项,还有安装目录中的NUnit.dll都可以看出来。
这次拿了AssertStore下的测试插件研究了一下,总结了一套可行的方案
https://www.assetstore.unity3d.com/#/content/13802
之前没有用过单元测试的童鞋可以用vs的单元测试先上手,下载一个vs2012
这个插件分为2种测试模式,单元测试UnitTest和集成测试Integration
单元测试模式有一个弊端,就是只能在编辑器状态下运行。你可以用许多Editor下的东西,但无法再运行状态下就意味着不支持NGUI,PlayMarker等。
而集成测试它会调用Unity的运行函数,然后逐个跑测试用例。相当于实际游戏运行环境,所以一般都用集成测试来做
集成测试分为2种,动态集成测试和普通集成测试
下面会逐一讲解
1.插件下载之后,Examples第二项则是集成测试例子。
2.然后打开集成测试面板Integration Test Runner
3.每一项集成测试都需要通过断言的组件的判断。
4.测试完成之后,在层级面板,测试面板也会有标注。
这种普通的集成测试一般用于 是否渲染可见,是否y坐标小于5。但有许多的约束性
调用函数很麻烦,无法像vs那样Assert.IsTrue(...)。所以要用到动态集成测试
5.有关动态集成测试的例子在这里,可以看一下DynamicIntegrationTest.cs脚本怎么写的
using System; using System.Collections.Generic; using UnityEngine;[IntegrationTest.DynamicTestAttribute("ExampleIntegrationTests")]//绑定的场景名 // [IntegrationTest.Ignore] 忽略这个测试 [IntegrationTest.ExpectExceptions(false, typeof(ArgumentException))]//期望异常,当ArgumentException时,测试返回成功 [IntegrationTest.SucceedWithAssertions]//根据所有断言来判断是否成功 [IntegrationTest.TimeoutAttribute(1)]//当超时返回失败,如果不设置,默认时限5秒 [IntegrationTest.ExcludePlatformAttribute(RuntimePlatform.Android, RuntimePlatform.LinuxPlayer)]//忽略掉的平台 public class DynamicIntegrationTest : MonoBehaviour {public void Start(){IntegrationTest.Pass(gameObject);} }
6.测试脚本,第一个特性DynamicTestAttribute("..")是绑定的场景名。如果在该场景名下,动态测试脚本会自动挂载到测试面板中。
[IntegrationTest.DynamicTestAttribute("ExampleIntegrationTests")] [IntegrationTest.ExcludePlatformAttribute(RuntimePlatform.Android, RuntimePlatform.LinuxPlayer)] public class Test1 : MonoBehaviour {public void Start(){IntegrationTest.Assert(gameObject);} }[IntegrationTest.DynamicTestAttribute("ExampleIntegrationTests")] [IntegrationTest.ExcludePlatformAttribute(RuntimePlatform.Android, RuntimePlatform.LinuxPlayer)] public class Test2 : MonoBehaviour {public void Start(){IntegrationTest.Assert(gameObject);} }
View Code
7.这样一个.cs文件里,创建若干个测试类。再针对不同模块,分成不同测试场景,进行测试。即可
这样也能支持NGUI等许多插件。无非一些按钮响应事件利用反射强制调用一下。
转载于:https://www.cnblogs.com/hont/p/4091807.html
Unity3d官方测试插件学习-单元测试,集成测试相关推荐
- 自动驾驶层次测试体系(单元测试/集成测试/SIL/HIL/VIL/RIL/LABCAR/实车等)
智能驾驶的测试是一个非常复杂的系统,我们用一篇文章,由小到大的逐个展开来和大家一起梳理下.在梳理之前我们先抛出一个问题,自动驾驶的测试量需要达到什么量级?根据国际一般标准统计,人类司机驾驶一小时的死亡 ...
- .net测试篇之单元测试/集成测试神器Autofixture
autofixture简介 有了单元测试框架加上Moq(后面我们会用单独章节来介绍moq),可以说测试问题基上都能搞定了.然而有了AutoFixture对单元测试来说可以说是如虎添翼,AutoFixt ...
- 【初阶】unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流...
[初阶]unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流 一.关于 显示分数时,如何让函数之间相互交流 这是一个非常好的逻辑问题 1 思路:主 ...
- 这一次,彻底入门前端测试,覆盖单元测试、组件测试(2.4w 字)
前端测试一直是前端工程化中很重要的话题,但是很多人往往对测试产生误解,认为测试不仅没有什么用而且还浪费时间,或者测试应该让测试人员来做,自己应该专注于开发.所以,文章开头会先从"软件工程语境 ...
- php仿伊人集源码,仿伊人集wecenter()包含所有功能及官方付费插件,整站带数据...
演示地址:如有演示站请以演示为准,无演示站以截图为准,源码太多服务器有限,无法搭建所有源码演示站,请谅解! 新手购买指导:1.在本站注册账号 丨 2.登录已注册账号充值源码所需金币 丨 3.登录账号下 ...
- 【贪玩巴斯】Unity3D初学圣经(一)——学习要求 Unity简单介绍 游戏引擎介绍 课程体系介绍 「1-1 到 1-4 」—— 2021年12月9日
Unity3D初学圣经 一 --学习要求 & Unity简单介绍 & 游戏引擎介绍 & 课程体系介绍 本文对应视频P1 1-1 到P2 1-4 1.学习要求 2.Unity简单 ...
- unity3d 各大插件评测
原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 引言:想用Unity3D制作优秀的游戏,插件是必不可少的.工欲善其事必先利其器.本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择 ...
- Unity Cinemachine插件学习笔记,结合Timeline实现简单场景动画
Unity Cinemachine插件学习笔记,结合Timeline实现简单场景动画 *版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 [Unity] ...
- 测试开发学习之旅------进阶篇
习题课 因果图法 自动饮料的售卖 机,可以输入1.5毛钱或者两块钱硬币,一瓶饮料的价钱1.5 可乐,雪碧,红茶,按哪一种饮料,出哪一种饮料,如果输入2块钱按相应的饮料,出饮料的同时会找出5毛硬币 (1 ...
最新文章
- linux刷新指定URL脚本,【图片】linux下crontab定时执行本地脚本和定时访问指定url【不要牧师吧】_百度贴吧...
- repmat--矩阵的复制和平铺
- Redis进阶-Redis 4种MQ 方案对比
- asp.net中上传文件实例
- 分布式mysql保持数据一致性_一种分布式跨数据库保持事务一致性的方法及系统与流程...
- 为什么都说猫有九条命呢
- Android之玩转MPAndroidChart让(折线图、柱形图、饼状图、散列图、雷达图)优雅的舞动
- 现在JavaScript日期–如何在JavaScript中获取当前日期
- 解决http://localhost:3000/favicon.ico 的404 问题(含案例解析)
- java redis缓存使用_java使用redis缓存数据库
- 想赚钱是好事,但盲目创业就容易悲剧
- 化学实验中计算机技术的应用,浅谈计算机在基础化学实验中的应用
- Javascript第六章基本数据类型和引用数据类型第三课
- 计算机丢失gdiplus.dll怎么办,win7系统丢失gdiplus.dll报错的解决办法
- 摩尔定律还会一直生效吗?
- 使用Pyecharts进行全国水质TDS地图可视化全过程8:绘制中国地图,使用timeline把多个值放在一个地图上
- [数据挖掘笔记01] 关联规则Apriori算法
- ffmpeg gif拆分成多张jpg
- arXiv每日推荐-5.9:计算机视觉/图像处理每日论文速递
- ecshop其他页面判断是智能手机访问也跳转到ECTouch对应手机版页面[有修正]
热门文章
- angular项目整合到.net mvc中
- TortoiseGit的安装使用
- uva 11275 3D Triangles (3D-Geometry)
- KSQL中Update多表级联更新的语法
- Windows 7关闭和开启系统休眠
- Assembly.Load,LoadFile,LoadFrom
- redis客户端-服务端协议(RESP协议)
- 外网质量监控系统实践之路
- React 第七章 条件渲染
- python图像加坐标_Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例...