Unity3d官方测试插件学习-单元测试,集成测试

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多Unity3D资源Unity3D培训视频Unity3D教程Unity3D常见问题Unity3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。

其实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.会多出一个页签,然后打开集成测试面板

3.每一项集成测试都需要通过断言的组件的判断。

4.测试完成之后,在层级面板,测试面板也会有标注。(绑了层级显示的回调,意味着PlayMarker的‘玩‘字没了- -)

这种普通的集成测试一般用于 是否渲染可见,是否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))]

[IntegrationTest.SucceedWithAssertions]

[IntegrationTest.TimeoutAttribute(1)]

[IntegrationTest.ExcludePlatformAttribute(RuntimePlatform.Android, RuntimePlatform.LinuxPlayer)]

public class DynamicIntegrationTest : MonoBehaviour

{

public void Start()

{

IntegrationTest.Pass(gameObject);

}

}

6.测试脚本,第一个特性DynamicTestAttribute("..")是绑定的场景名。如果在该场景名下,动态测试脚本会自动挂载到测试面板中。这样用起来就比较舒服了

[align=left][color=rgb(0,0,0)][backcolor=rgb(254,254,242)][/backcolor][/color][/align]

[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);

}

}

7.这样一个.cs文件里,创建若干个测试类。再针对不同模块,分成不同测试场景,进行测试。即可

这样也能支持NGUI等许多插件。无非一些按钮响应事件利用反射强制调用一下。

更多内容,请访问【狗刨学习网】unity极致学院

声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

?

时间: 2024-10-24 21:42:03

Unity3d官方测试插件学习-单元测试,集成测试的相关文章

.net测试篇之单元测试/集成测试神器Autofixture

系列目录 autofixture简介 有了单元测试框架加上Moq(后面我们会用单独章节来介绍moq),可以说测试问题基上都能搞定了.然而有了AutoFixture对单元测试来说可以说是如虎添翼,AutoFixture并且它能与moq,rhinomock等框架结合,对单元测试带来的便捷性,可维护性和扩展性更是难以言表,只有用用了才知道. 说了这么多,还没有介绍AutoFixture是干什么的,其实AutoFixture就是一个假数据填充工具. 其实不论是Nunit还是Xunit都有数据填充功能,并

Unity3d官方单元测试插件学习

更多Unity3D心得:Unity3D心得分享 其实Unity很早就有单元测试支持,从mono编辑器的UnitTest选项,还有安装目录中的NUnit.dll都可以看出来.只是国内很少有人研究. 这次拿了AssertStore下的测试插件研究了一下,总结了一套可行的方案 https://www.assetstore.unity3d.com/#/content/13802 之前没有用过单元测试的童鞋可以用vs的单元测试先上手,下载一个vs2012 这个插件分为2种测试模式,单元测试UnitTest

Activit单元i测试(与spring集成测试)

1.测试 eclipse下安装activiti插件以及maven 右键新建activiti project(这时会自动创建pom依赖以及activiti.cfg.xml,但还不是maven项目) 选中项目根目录右键选择configure  下的convert maven project(将项目转换成maven项目) 测试文件存放原则(不是必须):测试文件类放在test/java下面,流程bpmn放在resource下面(保证编译后都在classpath下) 命名规则:测试类和bpmn文件在同一个

各种测试插件的使用报告

经过上节课的学习,初步了解了各种Eclipse的测试插件以及Junit4的测试框架,下面就是使用的截图 1.CheckStyle  插件 下面是安装了CheckStyle的截图,采用暴力安装的方法 下面是用CheckStyle 检测代码的截图,检测的Calculate.java类 2.PMD插件,也是采用的暴力安装 下面是安装结果的截图 下面是用PMD中的PCD检测代码的结果 3.Junit4 测试Calculate.java 第一步首先引入Junit4 的jar包 然后构建测试框架 最后编写测

测试servlet学习笔记

操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->Build Path-->Configure Build Path-->Library -->Add External JAR Selection-->(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开

jQuery插件学习笔记

最近在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外一种机制:即给核心模块增加自己的方法和额外的功能.通过这种机制,Jquery允许我们自己创建属于我们自己的插件,提高我们在开发过程中的效率. 虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名.但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习

Qt 插件学习(一)

插件是什么 注意:这儿暂时不考虑静态插件(潜意识中总觉得它根本就不算插件). 插件是一个动态库(共享库).动态库是一个独立的文件中的独立模块,可被多个程序访问. 先看动态库的两种用法 1. 程序链接时指明动态库 这时程序中包含相应的头文件,编译时指定头文件路径,对于qmake来说: LIBS += -L/path1/path2/.../ -labcdINCLUDEPATH += /p1/p2/.../ 这样一来,程序启动时会自动加载需要的链接库. 2. 程序中动态加载动态库 运行过程中找到来查找

pyqt ColumnView, QFileSystemModel, QSplitter, QTreeView例子学习(由官方例子提供学习)

from PyQt4.QtGui import (QApplication, QColumnView, QFileSystemModel, QSplitter, QTreeView) #注意 """ QColumnView类提供了一个模型/视图列视图的实现,继承QAbstractItemView 提供了一个本地文件系统的数据模型,继承QAbstractItemModel 实现了一个分流器小部件,继承qframe 提供了一个默认的模型/视图树视图的实现,继承QAbstractI

Unity3d 官方资源Car的主控脚本CarController翻译与详解

一.综述 在Unity3D官方资源中Standard Assets –>Vehicles–>Car是赛车的相关资源,包括赛车模型.赛车控制脚本等.虽然用起来很方便,但是由于对有些脚本理解不彻底,就用不好.尤其是主要控制脚本CarController,我此次就对这个脚本进行了全面解析 二.CarController 1.主要函数流程图 整个CarController脚本主要是通过共有函数Move对赛车进行控制 2.代码类型定义部分 //汽车驱动类型 internal enum CarDriveT