(1).南通手游网小编为您带来游戏、软件Visual Unit(C/C++单元测试工具)的醉新醉全面的详细介绍。感兴趣的网友们快一起来看看吧! Visual Unit提供软件代码测试功能,可以直接对代码单元测试,分析当前的项目代码是否有错误,是否可以优化菜单,软件已经提供了测试案例,加载免费的案例工程到软件就可以执行分析测试,支持导入工程数据、执行函数测试、执行类/文件测试、执行全体测试、执行集成/部件测试,可以在统计界面查看到测试的数据,可以在报告菜单上统计本次测试的全部结果,从而导出测试报告,方便以后对比其他单元测试项目结果,适合需要对c++项目测试的朋友使用,Visual Unit免费已经提供了详细的教程内容,新用户也可以快速执行单元测试!软件功能 Visual Unit 4,简称VU4,适用于C和C++单元测试、集成测试、嵌入式测试、回归测试、白盒测试,以及测试驱动开发(可视编程)。
(2).VU4具备以下功能特性: 一、完全自动化操作功能 完全的表格驱动,测试工作=填表格。
(3). 表格中填写一个数据,相当于完成N行代码。VU自动生成测试驱动代码、桩代码等。
(4). 表格支持复合类型、数组、指针,多级指针可设置任一级的空指针。 对于不便于表格驱动的数据,如链表、映射表,提供了数据转换接口,转换为便于表格驱动的数据。
(5). 二、自动化用例生成功能 一键即可实现测试用例的自动生成,且自动用例生成,最高可实现100%全覆盖。
(6). 自动用例取值包括数字的边界值、空字符串、空指针等,以检测边界输入造成的崩溃、超时、异常等问题。(注:自动用例生成功能不能识别程序员用意,仅能跟着代码逻辑完成用例的设置) 三、轻松完成全覆盖功能 VU拥有用独创的用例设计器,根据用例设计器提示,便可轻轻松松实现全面覆盖; 支持语句、条件值、判定、MC/DC、分支、路径覆盖的自动统计; 所有未覆盖的逻辑单位具有清晰的标示。
(7). 四、开发效率至少可提升1倍 人工智慧完成代码开发,测试工作由VU4自动完成,即一边开发,VU则一边自动更新测试代码并执行测试,通过VU可查看测试结果,包括:程序行为描述,用例的输入、所执行的代码输出等。
(8).减少来来回回查找错误修改错误的时间,给人工腾出更多时间开发。 五、底层输入——无须调用底层函数、无须打桩便可轻松控制底层函数在测试中需要的数据。
(9). 支持在表格中控制底层函数产生测试需要的数据,包括返回值、出参、全局变量、成员变量; 支持在表格中控制底层函数在某些用例产生指定的数据,在另一些用例调用实际代码; 支持在表格中判断底层函数的调用次数; 支持在表格中控制底层函数直接跳过; 支持在表格中控制间接调用的函数产生测试需要的数据; 以上功能支持任意数据类型,且不需要编写代码,不污染产品代码。
(10). 六、局部变量测试难题,也不需手工编写代码,可随意控制局部输入与局部输出。
(11). 支持将局部数据转换为可在表格中设置输入的变量; 支持多次赋值,解决死循环之类的问题; 支持在任意指定位置打印局部数据,并支持对局部数据的结果进行判断; 以上功能不需要手工编写代码,更不污染产品代码。
(12). 七、轻易实现回归测试,可维护性强 产品代码修改时,测试代码自动更新,测试代码不需要手工维护; 测试数据与测试代码分离,便以维护。
(13). 八、测试数据可保存可复用于其它函数 可以将测试数据保存到文本文件/excel,其他函数可以从文本文件/Excel中导入数据。
(14). 九、测试报告支持自定义 测试报告数据信息完整,包括覆盖率、用例数、测试情况、测试状态等。 可以将测试报告导出成word或HTML格式。
(15).测(测)试(试)数(数)据(据)可(可)以(以)导(导)出(出)在(在)excel表(表)格(格)中(中)。 十(十)、复(复)杂(杂)类(类)型(型)可(可)转(转)换(换)为(为)简(简)单(单)化(化)数(数)据(据)类(类)型(型) 通(通)过(过)回(回)调(调)赋(赋)值(值),可(可)以(以)将(将)复(复)杂(杂)的(的)数(数)据(据)简(简)单(单)化(化),让(让)数(数)据(据)填(填)写(写)时(时)更(更)加(加)便(便)捷(捷)。
(16). 十一、可灵活选择需要测试函数、集成函数和屏蔽函数文件 在建立工程时可以通过标记为T/N/X来灵活选择测试文件,T表示要测试的文件,N表示不测但会调用的文件,X表示不测试也不需要调用的。
(17). 十二、对嵌入式项目的支持 可以支持绝大多数嵌入式项目。
(18).VU自(自)动(动)解(解)决(决)各(各)种(种)嵌(嵌)入(入)式(式)项(项)目(目)的(的)平(平)台(台)差(差)异(异)和(和)编(编)译(译)差(差)异(异),自(自)动(动)模(模)拟(拟)底(底)层(层)调(调)用(用)包(包)括(括)操(操)作(作)系(系)统(统)API。 利(利)用(用)VU开(开)发(发)嵌(嵌)入(入)式(式)项(项)目(目),在(在)主(主)要(要)的(的)开(开)发(发)过(过)程(程)中(中),可(可)以(以)实(实)现(现)并(并)行(行)、脱(脱)板(板)开(开)发(发),大(大)幅(幅)提(提)升(升)开(开)发(发)效(效)率(率)。
(19). 十三、轻松实现linux/unix项目的测试 可在win系统,通过远程控制,直接测试linux/unix项目。
(20).远程测试,是指针对在windows上开发的linux项目,进行单元测试和可视编程。测试代码在linux上编译和执行。软件特色 1、构建测试用例的成本 表格驱动逻辑块的输入输出,不需要编写测试代码和桩代码,支持面向逻辑块的测试 2、完成覆盖的成本 自动计算近似用例和修改提示,根据提示修改近似用例可以快速实现覆盖 3、对编程效率的促进 程序行为可视,列出最新更新的函数,支持Easy TDD快速编程 4、维护成本 测试代码完全自动生成,自动维护 5、数据的可重用性 数据与测试代码分离,易以重用使用说明 1、启动VU-Setup_v4.7.exe就可以执行软件安装 2、设置软件的安装地址D:Visual_Unit_4 3、进入软件就可以创建新的测试项目,也可以打开软件提供的示例工程文件 4、使用演示License只能测试示例代码(可以新建工程测试/Samples/Demo/中的代码)您也可以为其他项目建立W工程,但需要正式License才能正常测试。
(21). 5、产品项目开发环境设置界面:ADS1.2、AVR、CCS、CodeWarrior、CS+ for CA,CX、CubeSuite、DS-5、EVC 4.0、G++4 6、数据导入界面,支持从工程文件或makefile导入数据,或从makefile生成的命令行导入数据,cmake生成的makefile 7、执行make -B -k-n >xxx.txt,可生成文件xxx.txt,点击“选择文件”,选择xxx.txt文件。
(22).如xxx.txt是从他处拷贝的,则需同时拷贝CMakeFiles文件夹下的*.rsp文件,并保持这些文件原来的目录结构。
(23). 8、第三方库头文件根目录(用;分隔) 如使用了第三方库(指可以链接.a或lib的模块,不包括编译器的头文件),请将这些库的头文件的根目录添加在这里。
(24).使用多个第三方库时,只需添加共同的根目录。 9、将全部文件设为隔离(X),手动选择测试目标 也可以点击“下一步”跳过本步骤。
(25). 即使由工程文件导入数据,也可以在后续步骤中手工调整各项设定,包括重设测试目标。 10、请谨慎选择!建议选择到包含项目所有源文件和头文件的最低目录,例如,E:/a/b/proj,proj下有inc、src、lib等子目录,则根目录应设为E:/a/b/proj。
(26).根目录可以重设(例如,测试工程拷到其他机上工作时,根目录可能不同),但必须指向相同的子目录。同一项目的所有测试工程,根目录也应该指向相同的子目录。
(27). 11、本地工程(可在远程设置中指定根目录,工程迁移只需拷贝此文件夹) 开发过程中,编译中间文件(如VC.obj,GCC的.o)保存目录 12、常规头文件目录(产品项目头文件、嵌入式环境头文件,---自动插装/打桩--) 13、预处理定义(用,或;分隔,用=赋值) _MT,_WIN32,WIN32,_WINDOWS,_MSC_VER=1200,_M_IX86=500,_MSC_EXTENSIONS, _INTEGRAL_MAX_BITS=64,_DEBUG,DEBUG 14、其他选项(需按命令行的格式填写,如VC系列由/开始,GCC由-开始,用空格分隔) 15、链接 库文件搜索目录 $(vc6_dir)/vc98/lib/ $(vc6 dir)/vc98/mfc/lib/ 链接以下库(用或分隔) 忽略以下库(用或;分隔) 其他链接选项(需按命令行的格式填写,如VC系列由/开始,GCC由-开始,用空格分隔) 命令行 16、高级设置 替换:屏蔽/转定义关键字或代码片断,主要用于在PC上测试嵌入式项目。
(28). 忽略:指定不展开的宏、不测试的函数及不生成桩的函数,通常无须修改。
(29). 扩展:其他选项,通常无须修改。 敏捷开发设置:用于TDD(测试驱动开发)、VTDD(Visual TDD)的设置,可按规则指定不测试的函数。
(30). 集成测试设置:集成测试方面的设定。 强制拷贝文件:强制拷贝文件到VU工程,通常用于在源文件未建立的新项目中分配头文件。
(31). 添加内置类型:解释过程如出现"引用的类型xx未定义"的警告,可在这里添加定义。
(32). 17、请点击“添加”,设置需屏蔽或替换的关键字或代码片断。一个项是另一个项的一部分时,后者应在前面,如long long和long long int都替换为_int64,则long long int必须放在前面。
(33). 18、忽略 不展开的宏定义(用,分隔,只需填写宏名称) ASSERT, ASSERT_VALID, TRACE, TRACEO, TRACE1, TRACE2, TRACE3, new, DEBUG_NEW, _T, _TEXT, _FILE_,_FUNCTION_,LINE_ 将带分支或复杂的宏设为“不展开”,可以避免VW将这些宏展开造成分支和路径增多。
(34). 内容引用名称的宏不展开(如#define Var gObj.Var,展开可能造成编译错误) 19、扩展选项 头文件 生成桩代码时将库头文件放在前面 自动为头文件添加#ifndef XXXX #define XXXX ... #endif宏,避免头文件被重复编译 数据表格特别标识符(为维护测试数据统一,建议不要修改。
(35).流类型修改在重新打开工程后生效) 20、这里是软件的帮助功能,如果你需要查看软件的全部教程内容就可以在这里打开帮助 免费教程 禁止初始化 加入表格的变量,缺省会自动初始化(调用构造子函数或清零),对于在定义中已初始化的变量,可填写UNINIT,禁止初始化,但表格中仍然可以对个别成员赋值。
(36). 例如,以下代码 全局变量fpData的两个成员,在定义时已初始化为分别指向已实现的函数func和func2,如果在测试时不希望改变它们的值,则可以在表填中填UNINIT,如下图,仍然可以给其他成员设值: fpData.fp1()实际调用的是函数func,如果要给func设定底层输入,需要在左边函数代码窗口,右键菜单选择“添加间接底层输入”,直接给函数func设定底层输入,如下图用例2: 从命令行导入数据 从命令行导入数据的优势 命令行是指编译命令行,其内容包括了源文件编译时需要的所有信息,因此,从命令行导入数据,可以让VU准确完整地获得编译信息,减少测试工程可能产生的错误。
(37). 使用命令行导入方式建立的测试工程,通常不须要作任何的手动设置(指不需要修改工程属性)。 命令行导入数据方式,适用于超大型项目。
(38). 生成命令行文件 目前只支持由cmake生成的命令行。
(39). 用以下参数调用make,即可生成命令行文件: make -B -k -n >filename.txt 其中,-B,表示全部重新生成,-k表示有错误也继续,-n表示只生成命令行,不实际编译,>filename.txt,表示将输出结果保存到filename.txt文件。
(40). 生成命令行过程中,可能生成一些依赖文件,如.rsp文件,这些文件在建立测试工程时同样需要使用,因此,较好的方式是,建立一个专门用于生成命令行的build目录,如build2。
(41). 建立测试工程时导入数据 建立测试工程时,在导入数据界面,选择从命令行文件导入,如下图。
(42).后续的步骤可以一路下一步。 公共的编译和链接选项无效 由于每个编译单元具有独立且完整的命令行,命令行也具有完整的链接信息,因此不再需要公共的编译选项和链接选项,以下红框内的公共编译和链接选项无效,但绿框内的选项仍然有效(用于处理特别情形)。
(43). Linux项目远程测试 远程测试简介 远程测试,是指针对在windows上开发的linux项目,进行单元测试和可视编程。
(44). 测试代码在linux上编译和执行。 远端工具的安装与启动 VU根目录下,有一个utrt64(用于64位系统)和utrt32(用于32位系统)文件夹,这是远端工具,utrt的含义是:Unit Test Remote Tool。
(45). 安装:将utrt文件夹拷贝到linux某个位置,例如桌面,不用安装。 启动:在utrt文件夹下打开终端工具,输入./utrt。
(46).如(如)下(下)图(图)。启(启)动(动)后(后),显(显)示(示)utrt的(的)ip地(地)址(址)和(和)监(监)听(听)端(端)口(口)号(号)。
(47). VU端的设置 在VU“代码”菜单,选择“远程设置”,显示如下图所示界面: ip地址和端口号填写utrt显示的ip和port。
(48). 本机ip地址和端口号:多网卡可能需要指定本机ip,本机端口号实际并未使用,可以不填。 ip和端口号设置完成后,点击“连接”,即可连接utrt并检测网络状态。
(49). 远程工作目录:linux端保存测工程的缺省目录。
(50). 本地工作目录:本地保存测试工程的缺省目录。 库头文件目录,在建立工程时,将直接添加到“工程属性>头文件>库头文件搜索目录”中,这部分要设置完整且正确 ,点击GCC/G++可自动查询并填写。
(51). linux库头文件目录查询方法 打开终端,输入:echo 'main(){}' | gcc -E -v - 结果如下图所示。
(52). 用gcc或g++编译一个.c文件或.cpp文件,使用-v参数,也可以得到类似的结果,如gcc -v test.c或g++ -v test.cpp。
(53). 从linux获得编译命令行 对于linux项目,编译命令行需在linux下生成。
(54).方法: make -B -k -n >filename.txt 建立测试工程 建立测试工程时,开发环境选择VSCode-Linux,如果linux为64位,则选项带-64字样的模板,否则选择带-32字模的模板,如下图。
(55).点击“下一步”会弹出远程配置界面,可以确认一下远程配置是否正确。
(56).然后,进入导入数据界面,选择从命令行文件导入,并从映射盘下选择上一步生成的命令行文件。再后续的步骤可以一路下一步。
(57).建立工程后,使用上与本地测试方式基本上没有区别。
(58).以后打开工程前,记得先启动utrt!。 调试 点击调试,将编译调试工程, 编译成功后,显示以下信息“Please use gdb to debug: xxxx”,xxxx为调试文件的路径。
(59).可用gdb运行此文件进行调试。目前未实现windows端的IDE方式调试。 独立执行测试(持续集成) 独立执行概述 是指脱离VU环境, 以命令行方式执行测试,并生成测试报告以及覆盖统计报告。
(60). 独立执行可集成到Jenkins之类的持续集成平台,按预设的周期自动执行测试。 执行测试前,会自动检查源代码的修改,对于更新过的代码,会自动刷新测试代码,实现自动检测代码修改是否引入了新的错误。
(61). 生成独立执行工程 VU“工程”菜单,选择“导出独立执行的工程”,弹出以下窗口时,导出完成: 上图的提示信息列出了独立工程的文件夹(TestRun文件夹)保存位置,TestRun文件可以拷到没有VU的环境下工作,但执行过程需要编译器、链接器、make,并且,这些应用程序的路径均应已在系统的PATH环境中设定,可以直接调用。
(62).TestRun文件夹具有如下图所示的内容: 上图是在linux环境下执行测试的工程,windows环境下有些文件名称不同: coder.bin(linux) => Coder.exe(windows) outrun.bin(linux) => OutRun.exe(windows) maketest.sh(linux) => maketest.bat(windows) 路径修改 每次执行测试前,会自动检查代码修改并刷新测试代码。
(63).如果流水线环境下有些路径与当前工程不同,可打开RunTest文件夹下的dirs.txt修改,格式如下,每行一个目录,顺序无关,其中,product_dir为产品项目根目录(对应:VU工程属性>常规>产品项目根目录),include_dir为编译环境(如gcc)的头文件目录(对应:VU工程属性>头文件>库头文件目录),lib_dir为静态库的搜索目录(对应:VU工程属性>链接>库文件搜索目录 ,run_dir为动态库目录),environment_variable为环境变量,用:分隔名称与值(如environment_variable:work_dir:c:/abc/myproject/src,表示名为work_dir的环境变量,值为c:/abc/myproject/src): product_dir:/home/wt/projects/Demo-Linux/ include_dir:/usr/local/gcc/lib/gcc/x86_64-linux/7.5.0/include/ include_dir:/usr/local/include/ include_dir:/usr/local/gcc/include/ include_dir:/usr/local/gcc/lib/gcc/x86_64-linux/7.5.0/include-fixed/ include_dir:/usr/include/ lib_dir:/usr/wt/projects/Demo-Linux/lib run_dir:-rpath,/usr/wt/so environment_variable:work_dir:c:/abc/myproject/src 执行测试 执行以下文件,即可执行测试: linux环境:outrun.bin。
(64). windows环(环)境(境):OutRun.exe 执(执)行(行)过(过)程(程)会(会)自(自)动(动)调(调)用(用)coder.bin(或(或)Coder.exe)刷(刷)新(新)测(测)试(试)代(代)码(码)。
(65). 报告文件 测试报告:test.xml 覆盖统计文件:cov.xml 文件内容与格式与gtest生成的基本一致,持续集成工具中,用于显示gtest报告的插件可以兼容以上的告。
(66). 检查独立工程是否有错误 执行outrun.bin或OutRun.exe,如果能生成text.xml和cov.xml,表示执行成功。
(67).如果失败,可用文本编辑工具打开maketest.sh或maketest.bat,在最后加一行:pause,保存,然后 执行它,查看输出信息一般可以分析出失败原因,常见的原因是找不到make或编译器、链接器。
(68).更新日志 V4.7 更新 (20220309) 1、增加了从命令行导入数据来建立测试工程的功能 2、增加了远程测试功能,用于针对在windows上开发的linux项目,进行单元测试和可视编程 3、增加了命令行方式执行测试功能,可用于将单元测试集成到持续集成工具中 4、增加了用例数据恢复功能(数据表格右键菜单“恢复用例数据”)。
(69). 5、增加了导出json格式用例数据的功能 6、撤消了“导入空闲用例”功能,增加了“拷贝一行数据”及“拷贝整个数据表”功能,提升了数据复用及数据恢复方面的便利性,也可以更好地支持VTDD(在函数原形不断修改时不丢失数据) 7、增加了“禁止初始化”功能,。
(70). 8、覆盖统计增加了“调用返回覆盖率”。 以上就是南通手游网小编为您搜集整理并带来的游戏、软件Visual Unit(C/C++单元测试工具)的醉新醉全面的详细介绍。
(71).大家觉得小编为各位带来的游戏软件介绍怎么样呢?相关攻略请继续关注我们的网站南通手游网吧。