精华内容
下载资源
问答
  • Unity Test Runner

    千次阅读 2019-06-15 09:36:40
    Test Runner NUnit:Microsoft .NET的开源单元测试框架 UnityTestAttribute 可以在测试时跳过一些帧 Known issues and limitations 问题和限制 WebGL and WSA 不支持 UnityTestAttribute UnityTest 不支持 Pa....

    概述

    • 入口菜单:Window > General > Test Runner
    • NUnit:Microsoft .NET的开源单元测试框架
    • UnityTestAttribute
      • 可以在测试时跳过一些帧

    Known issues and limitations 问题和限制

    • WebGL and WSA 不支持 UnityTestAttribute
    • UnityTest 不支持 Parameterized tests
      • Parameterized tests
        • 在测试用例类中提供数据几个作为输入数据
        • 数据集中一般不止一组数据,框架会用这些数据多次测试被测试的类

    How to use Unity Test Runner 使用方法

    • 流程
      • 如果工程中没有测试,Create Test Script in current folder
      • 创建测试脚本:Assets > Create > C# Test Script
      • 当使用“Run on Platform”时Unity才会包含测试框架需要的程序集
    • Testing in Edit mode
      • 合法的测试脚本的位置
        • Project Editor folder
        • 仅供Editor使用的程序集,并且引用测试框架程序集(DLL)
          • 这个是可以在一个窗口里面配置,指明哪些文件夹引用测试框架,可以放置测试脚本
        • 在Project Editor folder下的预编译的程序集(DLL)
    • Testing in Play mode
      • unity可以控制所有最终的dll都引入测试框架的dll,设置完重启生效
        • 导致工程变大,构建时间增加
      • 构建最终的工程时需要移除引用的测试框架

    找不到自己写的代码怎么办

    • 找到自己的代码的文件夹
    • 右键/Create/Assembly Definition,命名随意,比如叫AllDef
    • 测试代码的Assembly Definetion下的Assembly Definition Reference下的Use GUIDs里增加AllDef
    • loading后即可测试自己的代码
    展开全文
  • Test Runner(测试运行器)是测试框架的重要组成部分,他用于组装待运行的测试用例及其配置,然后按照指定的要求运行这些测试用例,并将测试结果写入控制台或日志文件

    前提

    Test Runner基本特性

    更改浏览器

    默认情况下,Cypress使用Electron浏览器,但当系统中安装好其他浏览器后,可以在Test Runner中切换,如图所示
    在这里插入图片描述

    更改元素定位策略

    Cypress在定位元素时会遵循如下优先级:

    1. data-cy
    2. data-test
    3. data-testid
    4. id
    5. class
    6. tag
    7. attributes
    8. nth-child

    Cypress会尝试从高优先级的定位策略开始,定位目标元素,如果默认的定位顺序不符合应用程序实际情况,可以更改元素定位的优先级顺序,语法如下

    //设置定位策略优先级,Options的可选值为以上8种的一种或多种
    Cypress.SelectorPlayground.defaults(options)
    //获取元素选择器的值
    Cypress.SelectorPlayground.getSelector($el)
    
    //设置定位策略优先级,最高级是id
    Cypress.SelectorPlayground.defaults({
    	selectorPriority:['id', 'class', 'attributes']
    })
    

    代码实例

    例如如下HTML代码

    <button id='login' class='login-class'>登陆</button>
    

    默认情况下,获取到的元素选择器的值应该是login

    const $el=Cypress.$('button')
    //selector的返回值是login
    const selector=Cypress.SelectorPlayground.getSelector($el)
    

    更改元素定位策略,再次获取元素选择器的值,selector的值变成了login-class

    Cypress.SelectorPlayground.defaults({
    	selectorPriority:['class', 'id']
    })
    //selector的值变成了login-class
    const $el=Cypress.$('button')
    const selector = Cypress.SelectorPlayground.getSelector($el)
    

    实时监控测试用例执行情况

    Test Runner

    Time-Travel

    大部分的自动化测试框架都无法得知测试执行时被测应用程序所处的状态,只能在测试运行结束后通过日志或截图来猜测测试失败的原因,Cypress测试运行器则完全不同,它会记录每一条测试命令执行时被测应用程序所处的状态,并且保存起来以便回溯,因为Cypress保存的是应用程序状态,不是截图,因此Cypress支持查看命令执行时发生的一切操作,用户可直接定位到错误的根本原因,在测试结束后,可以通过鼠标悬停或者用鼠标单击某个命令的方式进行回溯

    • 使用鼠标悬停可以在应用程序预览中查看命令作用到被测应用的具体情况
    • 使用鼠标单击,将在浏览器的Console中看到当命令执行时,应用到了被测应用程序的哪个元素上,以及当时的上下文详细信息

    Test Runner扩展

    一个测试用例集(describe)通常包含多个测试用例(it),当特殊情况出现时,例如网络不稳定等可能引起测试失败,我们希望仅重试失败的用例而不是重跑整个测试用例集,但测试运行器仅支持重试整个测试用例集,插件cypress-skip-and-only-ui使该场景成为现实

    插件安装

    执行命令npm i -D cypress-skip-and-only-ui

    配置插件

    cypress/support/index.js文件中添加配置项

    require('cypress-skip-and-only-ui/support')
    

    cypress/plugins/index.js文件中添加 配置项

    const task=require('cypress-skip-and-only-ui/task')
    module.exports=(on,config)=>{
    	on('task', task)
    }
    

    如果有其他的配置项,则合并

    //将其他task的选项定义在otherTask里
    const otherTask={...}
    const task=require('cypress-skip-and-only-ui/task')
    const all=Object.assign({}, otherTask, task)
    module.exports=(on, config)=>{
    	on('task', all)
    }
    

    使用插件

    命令行启动Test Runneryarn run cypress open,在执行测试的时候就可以在用例后看到如下图标
    在这里插入图片描述
    但此插件新版本的Cypress已经不再支持,4.0之前的Cypress可以,然而对于Cypress的扩展来说,不止这一款插件可用,还有很多

    展开全文
  • python之Test Suite与Test Runner

    千次阅读 2017-11-05 22:17:19
    Test Runner:相当于是执行这个容器新建一个python file—名称:mytestrunner代码:#导入我们需要引入的测试用例(case)的文件名称 import unittestdemo import unittest#调用unitest的TestSuite方法 #mysuite=unittest....

    引言:

    Test Suite:相当于存储Case的容器
    Test Runner:相当于是执行这个容器

    新建一个python file—名称:mytestrunner

    这里写图片描述

    代码:

    #导入我们需要引入的测试用例(case)的文件名称
    import unittestdemo
    import unittest
    
    #调用unitest的TestSuite方法
    #mysuite=unittest.TestSuite
    #添加测试用例(即case),需要我们case的全路径,即python file名称.类名("函数名")
    #mysuite.addTest(unittestdemo.MyTestCase("testLoginIsOk"))
    #添加测试用例(即case),需要我们case的全路径,即python file名称.类名("函数名")
    #mysuite.addTest(unittestdemo.MyTestCase("testLoginIsFailure"))
    
    
    #如果我们需要直接执行整个类下的所有测试用例,那么可以换一种执行方式替代上述的方式
    #即unittest.TestLoader().loadTestsFromTestCase后面传入一个类的路径即可
    cases=unittest.TestLoader().loadTestsFromTestCase(unittestdemo.MyTestCase)
    #如果上述cases不止一个,即我们执行的类希望是多个,比如还有一个cases222=unittest.TestLoader().loadTestsFromTestCase(unittestdemo.MyTestCase)
    #那么接下来参数就是mysuite=unittest.TestSuite([cases,cases222]),即不同的case之间以逗号隔开
    mysuite=unittest.TestSuite([cases])
    #如果我们执行完上述后发现又需要同步执行某个类下的某一个Case(但不执行整个类的Case),只需要
    #即添加了之后我们执行除了MyTestCase下的两个Case外,还会执行下面的"testLoginIsFailure"Case
    mysuite.addTest(unittestdemo.MyTestCase("testLoginIsFailure"))
    
    #使用Test Runner来执行Test Suite打包的Case
    #verbosity=2代表打印的日志级别
    myrunner=unittest.TextTestRunner(verbosity=2)
    myrunner.run(mysuite)
    展开全文
  • Unity-TestRunner单元测试

    千次阅读 2019-09-10 15:24:27
    单元测试 开发者编写的一段代码,用于检测代码用于...Unity内部集成了单元测试的工具TestRunner,使用此工具编写单元测试用例。此工具提供了Edit模式和Play模式,可以在编译器模式下进行测试,也可以模拟真实运行进...

    本文由 祝你万事顺利 出品,转载请注明出处。

    单元测试

    开发者编写的一段代码,用于检测代码用于检测被测代码一个很小、很明确功能的代码,是否和开发者期望的一致。单元测试可以实现:
    1.静态类测试
    2.静态方法测试
    3.类的实例化测试
    4.类的方法测试

    Test Runner

    Unity内部集成了单元测试的工具TestRunner,使用此工具编写单元测试用例。此工具提供了Edit模式和Play模式,可以在编译器模式下进行测试,也可以模拟真实运行进行测试。
    Window > Test Runner中打开TestRunner

    Edit Mode

    在此模式下编写单元测试

    public class NewEditModeTest
    {
    
        private DoubleLinkedList<string> doubleLinkedList  = new DoubleLinkedList<string>();
    
        [SetUp]
        public void Set()
        {
            doubleLinkedList = new DoubleLinkedList<string>();
        }
    
    	[Test,Order(1)]
        public void DoubleLinkedList_FirstNodeTest()
        {
            doubleLinkedList.AddFirst("firstNode");
            DoubleLinkedNode<string> node = new DoubleLinkedNode<string>("firstNode");
            Assert.AreEqual(doubleLinkedList.First.m_next.m_data, node.m_data);
        }
    
        [Test, Order(2)]
        public void DoubleLinkedList_AddRemoveTest()
        {
            doubleLinkedList.AddFirst("second");
            doubleLinkedList.AddFirst("third");
            //doubleLinkedList.RemoveLast();
            Assert.AreEqual(doubleLinkedList.First.m_next.m_data, "third");
        }
    
        [Test, Order(3)]
        public void DoubleLinkedList_LastNodeTest()
        {
    
        }
    
        [TearDown]
        public void TearDown()
        {
            doubleLinkedList = null;
        }
        [UnityTest]
        public IEnumerator AssetBundleManagerTest()
        {
            yield return null;
        }
    
    }
    

    在这里插入图片描述
    这里在单元测试中创建了一个双向链表,测试了链表的增加删除的功能。

    几个Attribute说明

    Attribute Usage
    Order Attribute test属性方法的执行顺序
    SetUpAttribute 配置方法在所有test方法之前运行
    TearDown Attribute 配置方法在所有test方法之后运行
    Ignore Attribute 暂时忽略某个test方法

    代码覆盖率

    使用Visual Studio的代码覆盖率功能,测试应用覆盖大部分代码。
    代码覆盖率时使用测试资源管理器运行方法时的一个选项。结果表将显示各个程序集、类和方法中运行代码的百分比。

    分析覆盖率

    正常覆盖率在80%左右。

    代码覆盖率以块为单位计数。块是恰好有一个入口点和出口点的代码。在测试运行期间,如果程序的控制流通过某个块,则将该块记为“已覆盖”。使用次数对结果没有影响。

    合并不同结果
    在默写情况下可能需要组合来自不同的测试运行结果。例如,假设你在运行某个测试(输入为“2”)时发现某个特定函数已被覆盖了 50%。 当你第二次运行该测试(输入为“-2”)时,你在覆盖着色视图中发现该函数的另外 50% 也被覆盖。 现在,你合并来自这两个测试运行的结果,报告和覆盖率着色视图显示该函数已经 100% 被覆盖。
    请使用“代码覆盖率”窗口中“合并”按钮的图标 合并代码覆盖率结果。 你可以选择最近的运行或导入的结果的任意组合。 如果要组合导出的结果,则必须先将其导入。

    从代码覆盖率中排除元素

    将特性System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute 添加到以下任一代码元素:类、结构、方法、属性、属性 setter 或 getter、事件。从覆盖率分数中排除代码中的特定元素。

    因该看到的结果:

    在这里插入图片描述

    展开全文
  • No tests found with test runner JUnit4

    千次阅读 2017-07-09 02:15:51
    No tests found with test runner JUnit4
  • Python&Selenium自动化测试,使用html-testRunner生成HTML测试报告【源码】
  • Eclipse JUnit测试提示No tests found with test runner Junit5 在Eclipse中使用JUnit进行测试,Run as JUnit Test出现报错信息No tests found with test runner Junit5。 首先,保证测试方法返回类型是void。 其次...
  • bugzilla testrunner

    千次阅读 2006-03-28 17:36:00
    bugzilla testrunner 在sourceforge.net上下载.它是可以算是bugzilla的一个插件。Bugzilla Testopia is a web-based test case management system that works as an add-on to Bugzilla 1.安装将testrunner-x.x.tar....
  • Junit5:No tests found with test runner 'JUnit 5'出现的问题解决方案1解决方案2 出现的问题 我们在maven项目中,使用Junit5,可能会出现以下问题 那么如何解决 解决方案1 推荐 首先点击run,点击run ...
  • 解决"no tests found with test runner ‘JUnit5’"问题 开发时遇到"no tests found with test runner ‘JUnit5’"问题时,不妨将导入的import org.junit.jupiter.api.Test;换成import org.junit.Test;试一试。 ...
  • 使用Cypress进行UI测试(二)易于Debug的TestRunner
  • 运行MyBatis 报错No test found with test runner ‘JUnit5’   mybatis-config.xml文件有误 &lt;mappers&gt;  &lt;mapper resource="com/ssm/mybatiseg/dao/user/UserMapper.xml"/&...
  • 今天有个读者反馈运行书中实例时出现No tests found with test runner Junit5的错误提示。 这其实是项目的Junit版本和开发工具配置的Junit版本不一致导致的。解决办法如下: 然后在弹出的窗口中选择Junit版本,...
  • Bugzulla TestRunner安装心得

    千次阅读 2006-04-30 10:22:00
    Bugzulla TestRunner安装心得: OS平台:windows2000Bugzilla版本:2.20.2 / 2.20.1 现在未测试2.20(可能在该版本不会出现我所说的问题)TestRunner版本:testrunner-0.7.zip(在该版本下还没有2.22的patch) 下载...
  • CppUnit编译in vs2008 -testRunner编译失败

    千次阅读 2013-12-23 17:12:15
    testRunner编译说明: 先下个最新版cppunit-1.12.1.tar.gz 解压缩,进入cppunit-1.12.1\src目录,就是源代码所在,打开CppUnitLibraries.dsw工程,是用vc6.0写的,转换到CppUnitLibraries.sln ok,接着只需要修改一...
  • Testrunner提供很好的script功能,使批量运行和自动化soapUI script成为可能。对于任何运行方式,report都是我们最想要的。很简单,按照soapUI官方教程所说设置testrunner的report功能,
  • Java 单元测试错误:no tests found with test runner “Junit5”新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...
  • soapui中的testrunner.bat调研,用于自动化测试 副标题:soapui基于持续集成工具自动化运行的调研姿势 各位亲爱的同仁们,大家好吗? 最近项目在搞持续集成工具,我们的测试用例都是基于soapui工具...
  • Eclipse总是报错: No tests found with test runner JUnit4 首先如下几点 1 你有没有导入Junit包(eclipse中就自带了) 如果用到了spring的测试类 有没导入 spring-test包 2 你的包版本...
  • 认识Selenium -- Test Runner 模式和使用

    千次阅读 2009-06-11 16:17:00
    test runner 模式 Selenium test runner 脚本,也称测试用例(test case),是用 HTML 语言通过一个简单的表布局编写的,如下代码: Selenium 测试用例的结构 table border="1"> tr> td>First commandtd> td>Targettd...
  • JUNIT遇到问题An instrumention test runner is not specified
  • ERROR in src/myApp/e2e/src/app.e2e-spec.ts(3,1): error TS2582: Cannot find name '... Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`. ...
  • 开发工具:eclipse 网上很多方案都没有解决我的问题,在我...当出现这个错误 no tests found with test runner ‘JUnit 5’ 的时候, 不要慌,首先检查 sql映射文件所在的包名的首字母是否大写,如果未大写,将其修...
  • 在Selenium的根目录下,有两个名字为TestRunner但后缀名不一样的文件:1.TestRunner.hta2.TestRunner.htmlTestRunner.hta用文本编辑器打开TestRunner.hta文件,你会发现其实,这个文件的内容与TestRunner.html的文件...
  • java.lang.NoSuchMethodError: org.testng.TestRunner.addListener(Ljava/lang/Object;)V 具体表现:使用Maven Test可以正常跑完全部的测试流程,但使用Run As TestNG时,就会报如上错误。 问题原因: 排查了很久,...
  • import unittest ... # 单元测试时一般不直接使用 TestRunner 类,而是使用其子类 TextTestRunner 来完成测试, # 并将测试结果以文本方式显示出来: runner = unittest.TextTestRunner() runner.run(suite)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 104,842
精华内容 41,936
关键字:

testrunner