基于ILRuntime 1.6.3版本,在ILRuntime中提供测试用例,建议在下载ILRuntime之后先跑一遍官方的测试用例,对比自己使用ILRuntime的性能和官方数据是否一致

测试工具

测试工具预览

测试用例使用方法

  1. 双击从git拉取ILRuntime目录下的ILRuntime.sln
  2. 用VS或Rider打开后,对项目TestCases生成TestCases.dll
  3. 运行ILRuntimeTest项目会弹出上图的窗口,在LoadAssembly中加载之前生成的TestCases.dll
  4. 点击生成CLR绑定和适配器,如果无修改代码则只需要生成一次
  5. 从列表中选择需要运行的单元测试(RunSelect),可以选择RunAll运行所有用例

上图中两个按钮对应ILRuntime在Unity的菜单如下:

Binding: 通过自动分析热更DLL生成CLR绑定

CrossBind Gen: 生成跨域继承适配器

测试内容

整个测试用例包含这些内容,支持的C#语法,支持的C#特性

C#语法测试

用来测试ILRuntime中支持的C#语法,如果不支持的,会输出not support

涵盖的C#语法内容有:

struct interface Reflection Array
class override Inheritance RefOut
enum Delegate AsyncAwait JsonTest
try catch GenericMethod ActivatorCreateInstance ......

更多的测试用例可以查看下面的测试用例.txt

性能测试

用例中包含的性能部分并不算多,主要是运算符操作,代码在Test01.cs

TestCases.Test01.UnitTest_Performance2

TestCases.Test01.UnitTest_Performance

TestCases.Test01.UnitTest_Performance3

TestCases.Test01.UnitTest_Performance4

所有测试用例

我把官方的所有测试用例保存为一份txt,点击查看

注:对于sealed class,txt和用例中显示的是/,比如:TestCases.StaticTest/NormalClass.Create

通过反射获取所有的测试用例,代码如下:

var types = _app.LoadedTypes.Values.ToList();
foreach (var type in types)
{
var ilType = type as ILType;
if (ilType == null)
continue;
var methods = ilType.GetMethods();
foreach (var methodInfo in methods)
{
string fullName = ilType.FullName;
//目前只支持无参数,无返回值测试
if (methodInfo.ParameterCount == 0 && methodInfo.IsStatic && ((ILRuntime.CLR.Method.ILMethod)methodInfo).Definition.IsPublic)
{
var testUnit = new StaticTestUnit();
testUnit.Init(_app, fullName, methodInfo.Name);
_testUnitList.Add(testUnit);
}
}
}

ILRuntime的TestCase的更多相关文章

  1. Disable testSuite and testCase on some environment

    def testEnv = context.expand('${#Project#testEnv}') String[] testCases = ["CheckEARouting(ADS)A ...

  2. 移除project,testsuite,testcase级别所有的custom properties

    // Remove all custom properties on Project level. If removed, custom properties cannnot be injected ...

  3. Groovy解析xml并且注入Project,TestSuite,TestCase级别的custom properties

    import com.eviware.soapui.support.GroovyUtils import groovy.util.XmlParser def groovyUtils = new Gro ...

  4. 写 test-case心得

    最近,写ticket较多,由于每天有忙不完的工作加不完的班,心里逐渐有一个小人儿在抱怨了.此种情况下,慢慢的写case时边变得懒散,想钻空闲,于是便简简单单总结几个纲要便完事.提交test-case到 ...

  5. Maven pom.xml 配置说明: 打jar包不包括指定资源文件和.class xml,配置不跑testCase,建pom父子项目

    **maven如何配置打jar包时,一些class 或者资源文件不打进来,把classpath的xml文件打进jar <build> <!--针对资源文件--> <res ...

  6. 如何使用不同参数组合生成独立的TestCase函数(Python)

    在使用selenium2 Python做自动化测试的时候遇到个问题,写一个testcase 生成报告后,会有一个case的执行状态记录.这样我们写一个登录功能的自动化用例,只写一个case显然是不行的 ...

  7. soapUI 在多个测试套件 testsuite 里,多个testcase里传值如何实现

        1.首先 要添加一个全局 自定义变量 Custom Properties   2.用transfer property 将取来的值 放入到变量 getToken 里   3.在另一个testc ...

  8. hadoop 1 testcase运行方法

       转入hadoop2.0后,逐渐忘记了之前做testcase运行的方法,记录一下:    ant -Dtestcase=Test***    如果只运行core包得testcase可以    an ...

  9. 【十】注入框架RoboGuice使用:(Your First Testcase)

    上一篇我们简单的介绍了一下RoboGuice的使用([九]注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)),今天 ...

  10. JUnit之TestCase和TestSuite详解

    首先介绍下TestCase以及TestSuite.    TestCase:字面意思,测试用例.为一个或多个方法提供测试方法.一般是一个test    TestSuite:测试集合,即一组测试.一个t ...

随机推荐

  1. Socket | 大小端问题和网络字节序转换函数

    不同 CPU 中,4 字节整数 1 在内存空间的存储方式是不同的.4 字节整数 1 可用 2 进制表示如下: 00000000 00000000 00000000 00000001 有些 CPU 以上 ...

  2. 【网摘】SQL练习题

    原文链接:Here

  3. 杭州站|阿里云 Serverless 技术实践营(Serverless + 大数据)开启报名!

    活动简介 "Serverless 技术实战与创新沙龙 " 是一场以 Serverless 为主题的开发者活动,通过一个下午的时间增进对 Serverless 技术的理解,快速上手, ...

  4. 6、SpringBoot-mybatis分页实现pagehelper

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  5. poj 3246 简单线段树

    线段树还真有点难写... #include <iostream> #include <cstdio> #include <cstring> #include < ...

  6. 解决xshell-ssh远程登录,只能通过public key登录导致无法登录的情况

    xshell无法通过密码登录的问题如下: 1.登录主机:vi /etc/ssh/sshd_config 2.搜索关键字:PasswordAuthentication 3.将PasswordAuthen ...

  7. 机器学习-无监督机器学习-kmeans-17

    目录 1. 什么是聚类 2. 代码实现 1. 什么是聚类 无监督机器学习的一种 输入数据只有X 没有y 将已有的数据 根据相似度 将划分到不同的簇 (花团锦簇) 步骤: 随机选择k个簇的中心点 样本根 ...

  8. iview 表单有值却校验失败

    转载请注明出处: iview 表单校验数值的时候,表单有值,却在提交的时候,提示表单校验失败: 解决方案: 1. IviewUI的文档里查到了rules规则里面有个校验类型的属性字段type rule ...

  9. spring--AOP通知类型有哪些

    Spring AOP(Aspect-Oriented Programming,面向切面编程)提供了五种类型的通知(advice),这些通知定义了切面(aspect)是在目标对象的方法执行的哪个点被应用 ...

  10. 【C/C++】函数入参检查

    // 统计变参数量 #define CALC_VA_COUNT(arg...) \ ({ \ int count = 0; \ int insideQuotes = 0; \ const char * ...