CN110908918A - 针对多个相互依赖的node.js模块的单元测试方法及装置 - Google Patents

针对多个相互依赖的node.js模块的单元测试方法及装置 Download PDF

Info

Publication number
CN110908918A
CN110908918A CN201911202832.0A CN201911202832A CN110908918A CN 110908918 A CN110908918 A CN 110908918A CN 201911202832 A CN201911202832 A CN 201911202832A CN 110908918 A CN110908918 A CN 110908918A
Authority
CN
China
Prior art keywords
node
modules
test
unit
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911202832.0A
Other languages
English (en)
Inventor
郭盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Netemployment Consulting Co Ltd
Original Assignee
Beijing Netemployment Consulting Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Netemployment Consulting Co Ltd filed Critical Beijing Netemployment Consulting Co Ltd
Priority to CN201911202832.0A priority Critical patent/CN110908918A/zh
Publication of CN110908918A publication Critical patent/CN110908918A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了针对多个相互依赖的node.js模块的单元测试方法,包括:确定多个node.js模块的依赖关系;根据依赖关系依次安装多个node.js模块;对多个node.js模块分别执行单元测试,输出测试结果和覆盖率数据。本发明能够对多个独立的node.js模块统一执行单元测试,统一输出测试结果和覆盖率数据,有力地保障软件系统的稳定性。

Description

针对多个相互依赖的node.js模块的单元测试方法及装置
技术领域
本发明涉及计算机软件测试领域。更具体地说,本发明涉及一种针对多个相互依赖的node.js模块的单元测试方法及装置。
背景技术
在软件开发过程中,通常需要把一个大型项目拆分成若干个独立的子项目模块,这有助于代码共享以及子项目模块的独立发布。为了统一管理多个项目模块,共用同一套代码检查规范、测试和发版流程,统一处理issue和生成changelog,需要使用monorepos的代码组织方式,即将多个node.js模块放在一个代码仓库中管理。在软件开发过程中为了保证质量,通常需要编写单元测试,较高的单元测试覆盖率和通过率是软件发包上线的前提。但是在多包库的代码组织方式下,目前已有的JavaScript测试框架,无法满足统一执行多个项目模块的单元测试并输出覆盖率报告的需求。
发明内容
本发明的一个目的是提供一种针对多个相互依赖的node.js模块的单元测试方法及装置,其能够对多个独立的node.js模块统一执行单元测试,统一输出测试结果和覆盖率数据,有力地保障软件系统的稳定性。
为了实现根据本发明的这些目的和其它优点,提供了针对多个相互依赖的node.js模块的单元测试方法,包括:
确定多个node.js模块的依赖关系;
根据依赖关系依次安装多个node.js模块;
对多个node.js模块分别执行单元测试,输出测试结果和覆盖率数据。
优选的是,所述的针对多个相互依赖的node.js模块的单元测试方法,通过分析多个node.js模块的依赖树,确定多个node.js模块的依赖关系。
优选的是,所述的针对多个相互依赖的node.js模块的单元测试方法,将多个node.js模块测试结果和覆盖率数据合并输出。
优选的是,所述的针对多个相互依赖的node.js模块的单元测试方法,多个node.js模块均存储于同一代码仓库;
间隔设定时间从代码仓库内获取多个node.js模块,确定多个node.js模块的依赖关系,根据依赖关系依次安装多个node.js模块,对所述多个node.js模块分别执行单元测试。
优选的是,所述的针对多个相互依赖的node.js模块的单元测试方法,在单元测试结束后,将测试结果和覆盖率数据发送给用户。
优选的是,所述的针对多个相互依赖的node.js模块的单元测试方法,对node.js模块执行单元测试包括:
建立测试用例集合;
用测试用例集合中的测试用例对node.js模块执行单元测试,获得测试用例未通过集合和通过集合;
记录异常路径;
其中,根据通过集合的测试用例的执行路径,确定交叠路径,所述交叠路径为至少两条执行路径均经过的路径;
根据未通过集合的测试用例的执行路径,确定异常路径,所述异常路径为未通过集合的测试用例的执行路径与交叠路径的非共有路径。
本发明还提供了针对多个相互依赖的node.js模块的单元测试装置,包括:
处理器;
存储器,其存储有可执行指令;
其中,所述处理器被配置为执行所述可执行指令,以执行所述的针对多个相互依赖的node.js模块的单元测试方法。
本发明至少包括以下有益效果:
1、本发明对于包含多个独立node.js模块的项目,可分批次安装每个模块的依赖,自动执行单元测试,统一输出测试数据报表。可以有力地保障软件系统的稳定性;
2、本发明自动执行单元测试,节约了人工测试成本;
3、本发明统一输出测试数据报表,更直观展示代码质量,及早曝露出代码自身的问题,并能及时通知到负责人对其进行修复。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。
在一种技术方案中,如图1所示,针对多个相互依赖的node.js模块的单元测试方法,包括:
确定多个node.js模块的依赖关系;
根据依赖关系依次安装多个node.js模块;
对多个node.js模块分别执行单元测试,输出测试结果和覆盖率数据。
在上述技术方案中,多个node.js模块属于同一软件项目,各多个node.js模块之前可能存在依赖关系,单独进行单元测试需要耗费大量时间安装依赖,测试效率较低。本技术方案,将多个node.js模块统一安装、统一测试,可以提高测试效率。具体地,先分析依赖关系,根据依赖关系安装各node.js模块,尽可能使得在前安装的node.js模块成为在后安装的node.js模块的基础,比如按照从最少依赖的npm模块到最多依赖的npm模块的顺序安装。对完成安装的各node.js模块分别执行单元测试,并统一输出测试结果和覆盖率数据,方便开发人员找出代码缺陷。
在另一种技术方案中,所述的针对多个相互依赖的node.js模块的单元测试方法,通过分析多个node.js模块的依赖树,确定多个node.js模块的依赖关系。这里提供了确定依赖关系的方案,通过依赖树确定,方便快捷。
在另一种技术方案中,所述的针对多个相互依赖的node.js模块的单元测试方法,将多个node.js模块测试结果和覆盖率数据合并输出。这里提供了优选的结果输出方式,对测试结果和覆盖率数据合并输出,方便项目负责人直观地了解项目的整体情况。
在另一种技术方案中,所述的针对多个相互依赖的node.js模块的单元测试方法,多个node.js模块均存储于同一代码仓库;
间隔设定时间从代码仓库内获取多个node.js模块,确定多个node.js模块的依赖关系,根据依赖关系依次安装多个node.js模块,对所述多个node.js模块分别执行单元测试。这里,提供了优选的自动测试方案,定时从代码仓库内拉取node.js模块,并执行第一个技术方案的操作,以便项目负责人实时了解项目代码质量。
在另一种技术方案中,所述的针对多个相互依赖的node.js模块的单元测试方法,在单元测试结束后,将测试结果和覆盖率数据发送给用户。这里用户指项目负责人,通过自动汇报机制,加强项目代码质量管理。
在另一种技术方案中,所述的针对多个相互依赖的node.js模块的单元测试方法,对node.js模块执行单元测试包括:
建立测试用例集合;
用测试用例集合中的测试用例对node.js模块执行单元测试,获得测试用例未通过集合和通过集合;
记录异常路径;
其中,根据通过集合的测试用例的执行路径,确定交叠路径,所述交叠路径为至少两条执行路径均经过的路径;
根据未通过集合的测试用例的执行路径,确定异常路径,所述异常路径为未通过集合的测试用例的执行路径与交叠路径的非共有路径。
本技术方案提供了一种优选的单元测试方案,首先根据node.js模块建立测试用例集合,利用集合内的测试用例对node.js模块进行测试,将通过的测试用例加入通过集合,将未通过的测试用例加入未通过集合。确定未通过集合和通过集合内测试用例的执行路径,进而确定交叠路径和异常路径。交叠路径为缺陷可能性较小的代码区域,异常路径为缺陷可能性较大的代码区域,通过记录可以方便开发人员改良。
本发明还提供了针对多个相互依赖的node.js模块的单元测试装置,包括:
处理器;
存储器,其存储有可执行指令;
其中,所述处理器被配置为执行所述可执行指令,以执行所述的针对多个相互依赖的node.js模块的单元测试方法。
本技术方案基于与针对多个相互依赖的node.js模块的单元测试方法相同的发明构思得到,可参考方法部分的描述。本技术方案的装置不限于pc、终端、服务器。比如此装置可以设置在服务器中,间隔设定时间将node.js模块拉入服务器都会自动执行单元测试,不需要手动运行,实时发现问题并修复问题减少线上出错的概率。
这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明针对多个相互依赖的node.js模块的单元测试方法及装置的应用、修改和变化对本领域的技术人员来说是显而易见的。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (7)

1.针对多个相互依赖的node.js模块的单元测试方法,其特征在于,包括:
确定多个node.js模块的依赖关系;
根据依赖关系依次安装多个node.js模块;
对多个node.js模块分别执行单元测试,输出测试结果和覆盖率数据。
2.如权利要求1所述的针对多个相互依赖的node.js模块的单元测试方法,其特征在于,通过分析多个node.js模块的依赖树,确定多个node.js模块的依赖关系。
3.如权利要求1所述的针对多个相互依赖的node.js模块的单元测试方法,其特征在于,将多个node.js模块测试结果和覆盖率数据合并输出。
4.如权利要求1所述的针对多个相互依赖的node.js模块的单元测试方法,其特征在于,多个node.js模块均存储于同一代码仓库;
间隔设定时间从代码仓库内获取多个node.js模块,确定多个node.js模块的依赖关系,根据依赖关系依次安装多个node.js模块,对所述多个node.js模块分别执行单元测试。
5.如权利要求4所述的针对多个相互依赖的node.js模块的单元测试方法,其特征在于,在单元测试结束后,将测试结果和覆盖率数据发送给用户。
6.如权利要求4所述的针对多个相互依赖的node.js模块的单元测试方法,其特征在于,对node.js模块执行单元测试包括:
建立测试用例集合;
用测试用例集合中的测试用例对node.js模块执行单元测试,获得测试用例未通过集合和通过集合;
记录异常路径;
其中,根据通过集合的测试用例的执行路径,确定交叠路径,所述交叠路径为至少两条执行路径均经过的路径;
根据未通过集合的测试用例的执行路径,确定异常路径,所述异常路径为未通过集合的测试用例的执行路径与交叠路径的非共有路径。
7.针对多个相互依赖的node.js模块的单元测试装置,其特征在于,包括:
处理器;
存储器,其存储有可执行指令;
其中,所述处理器被配置为执行所述可执行指令,以执行权利要求1~6任一所述的针对多个相互依赖的node.js模块的单元测试方法。
CN201911202832.0A 2019-11-29 2019-11-29 针对多个相互依赖的node.js模块的单元测试方法及装置 Pending CN110908918A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911202832.0A CN110908918A (zh) 2019-11-29 2019-11-29 针对多个相互依赖的node.js模块的单元测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911202832.0A CN110908918A (zh) 2019-11-29 2019-11-29 针对多个相互依赖的node.js模块的单元测试方法及装置

Publications (1)

Publication Number Publication Date
CN110908918A true CN110908918A (zh) 2020-03-24

Family

ID=69820718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911202832.0A Pending CN110908918A (zh) 2019-11-29 2019-11-29 针对多个相互依赖的node.js模块的单元测试方法及装置

Country Status (1)

Country Link
CN (1) CN110908918A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767217A (zh) * 2020-06-24 2020-10-13 中国工商银行股份有限公司 Js单元测试案例生成方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419711A (zh) * 2011-11-16 2012-04-18 深圳市佳创视讯技术股份有限公司 数字电视接收终端的嵌入式系统的包管理系统及方法
US20140310591A1 (en) * 2013-03-13 2014-10-16 Thong Nguyen Presentation layer software development kit for creation of dynamic webpages
CN105159729A (zh) * 2015-09-25 2015-12-16 北京金山安全软件有限公司 驱动程序的安装方法和装置
CN105487859A (zh) * 2015-11-25 2016-04-13 北京工业大学 一种基于模板的大数据组件web部署方法
CN108932191A (zh) * 2017-05-23 2018-12-04 北京嘀嘀无限科技发展有限公司 自动化测试方法、系统、计算机设备及可读存储介质
CN109388416A (zh) * 2018-09-29 2019-02-26 智器云南京信息科技有限公司 一种应用软件的插件化实现方法及系统
CN109491763A (zh) * 2018-11-14 2019-03-19 北京奇艺世纪科技有限公司 一种系统部署方法、装置及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419711A (zh) * 2011-11-16 2012-04-18 深圳市佳创视讯技术股份有限公司 数字电视接收终端的嵌入式系统的包管理系统及方法
US20140310591A1 (en) * 2013-03-13 2014-10-16 Thong Nguyen Presentation layer software development kit for creation of dynamic webpages
CN105159729A (zh) * 2015-09-25 2015-12-16 北京金山安全软件有限公司 驱动程序的安装方法和装置
CN105487859A (zh) * 2015-11-25 2016-04-13 北京工业大学 一种基于模板的大数据组件web部署方法
CN108932191A (zh) * 2017-05-23 2018-12-04 北京嘀嘀无限科技发展有限公司 自动化测试方法、系统、计算机设备及可读存储介质
CN109388416A (zh) * 2018-09-29 2019-02-26 智器云南京信息科技有限公司 一种应用软件的插件化实现方法及系统
CN109491763A (zh) * 2018-11-14 2019-03-19 北京奇艺世纪科技有限公司 一种系统部署方法、装置及电子设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DU-Z: "linux系统rpm和yum软件包管理", 《HTTPS://WWW.CNBLOGS.COM/DU-Z/P/10886109.HTML》 *
JACK_OU: "gradle多模块开发", 《HTTPS://WWW.CNBLOGS.COM/LANGTIANYA/P/5777232.HTML》 *
XPWI: "Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版", 《HTTPS://WWW.CNBLOGS.COM/XPWI/P/10593486.HTML》 *
落魄的小开发: "maven中多个子模块的构建顺序", 《HTTPS://BLOG.CSDN.NET/ERFU6081/ARTICLE/DETAILS/103282682》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767217A (zh) * 2020-06-24 2020-10-13 中国工商银行股份有限公司 Js单元测试案例生成方法及装置
CN111767217B (zh) * 2020-06-24 2024-02-02 中国工商银行股份有限公司 Js单元测试案例生成方法及装置

Similar Documents

Publication Publication Date Title
US10289535B2 (en) Software testing integration
US20190294536A1 (en) Automated software deployment and testing based on code coverage correlation
US9519571B2 (en) Method for analyzing transaction traces to enable process testing
CN107665171B (zh) 自动回归测试方法及装置
US7917897B2 (en) Defect resolution methodology and target assessment process with a software system
CN103150249B (zh) 一种自动化测试的方法和系统
US9026998B2 (en) Selecting relevant tests to quickly assess code stability
US8978009B2 (en) Discovering whether new code is covered by tests
US20160117239A1 (en) Generating an evolving set of test cases
US9411575B2 (en) Systems and methods for quality assurance automation
CN109634843A (zh) 一种面向ai芯片平台的分布式自动化软件测试方法及平台
GB2493828A (en) Linking a test case error to a code segment to re-execute the test when the code segment is modified
US10169002B2 (en) Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team
US10528456B2 (en) Determining idle testing periods
WO2021097824A1 (zh) 一种代码质量和缺陷的分析方法、服务器及存储介质
JP2015011372A (ja) デバッグ支援システム、方法、プログラム及び記録媒体
CN114201408A (zh) 回归测试方法、装置、计算机设备及存储介质
CN114579467B (zh) 一种基于发布订阅机制的冒烟测试系统及方法
CN110908918A (zh) 针对多个相互依赖的node.js模块的单元测试方法及装置
US9354962B1 (en) Memory dump file collection and analysis using analysis server and cloud knowledge base
CN112346994B (zh) 一种测试信息关联方法、装置、计算机设备及存储介质
CN115185825A (zh) 接口测试的调度方法及装置
CN117130945B (zh) 一种测试方法和装置
CN114138677B (zh) 测试方法及装置、测试系统、电子设备
Kajko-Mattsson et al. Outlining developers' testing process model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200324

RJ01 Rejection of invention patent application after publication