System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件测试,特别是一种go语言的提高单元测试效率的方法及系统。
技术介绍
1、go(又称golang)是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
2、目前go语言在运行单元测试时,会扫描go.mod文件中所有直接依赖和间接依赖,在项目依赖文件很多时候,即使只跑一个简单的没有任何依赖的单元测试也要重新对所有依赖进行编译,导致影响单元测试编写效率。
技术实现思路
1、为克服现有技术中go语言在运行单元测试时,每次会扫描所有依赖包,影响单元测试编写效率,本专利技术的目的是提供一种go语言的提高单元测试效率的方法及系统,能够针对目标单元测试需要的依赖包进行过滤,编译时无需扫描所有依赖包,单元测试编写效率高。
2、本专利技术采用以下方案实现:
3、一种go语言的提高单元测试效率的方法,所述方法步骤如下:
4、步骤1:指定需要优化的单元测试文件和需要优化的项目根目录;
5、步骤2:扫描单元测试文件的依赖包列表,获取各个依赖包,所述依赖包包括直接依赖包和间接依赖包,并将所述直接依赖包和间接依赖包保存至一依赖列表中;
6、步骤3:创建项目根目录的副本目录a,所述副本目录a的目录中具有go.mod文件,将副本目录a中不包含在依赖列表中的直接依赖包的引用从目录下的go.mod文件中移除;
7、步骤4:创建副本目录b,查询副本目录a引用的直接依赖包的间接依赖包,将直接依
8、步骤5:修改副本目录a的go.mod文件中的引用记录,改为引用副本目录b对应直接依赖包和间接依赖包的路径;
9、步骤6:对目录b中的间接依赖包进行清理,将没有包含在依赖列表中的间接依赖包删除;
10、步骤7:进行单元测试。
11、进一步的,步骤4进一步具体为:根据直接依赖包的依赖数判断是否存在间接依赖包,如果依赖数大于1则存在间接依赖包,将直接依赖包和间接依赖包中的代码拷贝到副本目录b;如果依赖数小于1则不存在间接依赖包,将直接依赖包代码拷贝到副本目录b创建副本。
12、进一步的,步骤5进一步具体为:通过replace语句将引用改为副本目录b。
13、一种单元测试系统,所述系统包括:选择模块、扫描模块、副本目录创建模块a、副本目录创建模块b、引用修改模块、间接依赖包清理模块和编译模块;
14、所述选择模块用于指定需要优化的单元测试文件和需要优化的项目根目录;
15、所述扫描模块用于扫描单元测试文件的依赖包列表,获取各个依赖包,所述依赖包包括直接依赖包和间接依赖包,并将所述直接依赖包和间接依赖包保存至一依赖列表中;
16、所述副本目录创建模块a用于创建项目根目录的副本目录a,所述副本目录a的目录中具有go.mod文件,将副本目录a中不包含在依赖列表中的直接依赖包的引用从目录下的go.mod文件中移除;
17、所述副本目录创建模块b用于创建副本目录b,查询副本目录a引用的直接依赖包的间接依赖包,将直接依赖包和间接依赖包的内容拷贝至副本目录b中;
18、所述引用修改模块用于修改副本目录a的go.mod文件中的引用记录,改为引用副本目录b对应直接依赖包和间接依赖包的路径;
19、所述间接依赖包清理模块用于对目录b中的间接依赖包进行清理,将没有包含在依赖列表中的间接依赖包删除;
20、所述编译模块用于进行单元测试。
21、进一步的,副本目录创建模块b进一步具体为:根据直接依赖包的依赖数判断是否存在间接依赖包,如果依赖数大于1则存在间接依赖包,将直接依赖包和间接依赖包中的代码拷贝到副本目录b;如果依赖数小于1则不存在间接依赖包,将直接依赖包代码拷贝到副本目录b创建副本。
22、进一步的,引用修改模块进一步具体为:通过replace语句将引用改为副本目录b。
23、本专利技术的有益效果在于:
24、本专利技术提供一种go语言的提高单元测试效率的方法及系统,通过扫描单元测试文件的依赖包列表,获取各个依赖包及依赖列表,创建项目根目录的副本目录a,将副本目录a中不包含在依赖列表中的直接依赖包的引用从目录下的go.mod文件中移除,并对副本目录b中的依赖包进行筛选删除,再将副本目录a的应用记录改为引用副本目录b,此时进行单元测试在测试的时候由于副本目录a和副本目录b中的依赖都是筛选过的,无用依赖已经删除,此时能够减少单元测试时候编译无用依赖带来的时间损耗。
本文档来自技高网...【技术保护点】
1.一种go语言的提高单元测试效率的方法,其特征在于,所述方法步骤如下:
2.根据权利要求1所述的一种go语言的提高单元测试效率的方法,其特征在于,步骤4进一步具体为:根据直接依赖包的依赖数判断是否存在间接依赖包,如果依赖数大于1则存在间接依赖包,将直接依赖包和间接依赖包中的代码拷贝到副本目录B;如果依赖数小于1则不存在间接依赖包,不进行操作。
3.根据权利要求1所述的一种go语言的提高单元测试效率的方法,其特征在于,步骤5进一步具体为:通过replace语句将引用改为副本目录B。
4.一种go语言的提高单元测试效率的系统,其特征在于,所述系统包括:选择模块、扫描模块、副本目录创建模块A、副本目录创建模块B、引用修改模块、间接依赖包清理模块和编译模块;
5.根据权利要求4所述的一种go语言的提高单元测试效率的系统,其特征在于,副本目录创建模块B进一步具体为:根据直接依赖包的依赖数判断是否存在间接依赖包,如果依赖数大于1则存在间接依赖包,将直接依赖包和间接依赖包中的代码拷贝到副本目录B;如果依赖数小于1则不存在间接依赖包,将直接依赖包
6.根据权利要求4所述的一种go语言的提高单元测试效率的系统,其特征在于,引用修改模块进一步具体为:通过replace语句将引用改为副本目录B。
...【技术特征摘要】
1.一种go语言的提高单元测试效率的方法,其特征在于,所述方法步骤如下:
2.根据权利要求1所述的一种go语言的提高单元测试效率的方法,其特征在于,步骤4进一步具体为:根据直接依赖包的依赖数判断是否存在间接依赖包,如果依赖数大于1则存在间接依赖包,将直接依赖包和间接依赖包中的代码拷贝到副本目录b;如果依赖数小于1则不存在间接依赖包,不进行操作。
3.根据权利要求1所述的一种go语言的提高单元测试效率的方法,其特征在于,步骤5进一步具体为:通过replace语句将引用改为副本目录b。
4.一种go语言的提高单元测试效率的系统,其特征在于,所述系统包括:...
【专利技术属性】
技术研发人员:刘德建,陈丛亮,李佳,
申请(专利权)人:福建天晴在线互动科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。