在vue框架中配置测试覆盖率

    技术2025-01-27  52

    什么是测试覆盖率

    这个要从测试的流派说起了,测试分为黑盒测试(不知道代码如何写的)、白盒测试(知道代码是如何写的)。

    测试人员通常进行黑盒测试,在集成环境下参照写好的测试用例,用鼠标点点点跑流程。按测试代码的颗粒度来划分,也可以叫集成测试,属于最大颗粒度的测试。

    而开发人员对自己的代码进行测试,叫做白盒测试,一般是单元测试,属于是最小颗粒度的测试,对函数进行断言。

    对一个项目来说最好是既要有黑盒测试(人肉测试)又要有白盒测试(机器测试,代码测代码)。

    而测试覆盖率指的就是通过写单元测试测试项目代码,项目的逻辑有多少被测过了,这个值就是测试覆盖率。

     

    为什么会有测试覆盖率

    从某一方面来说能够保证代码质量,敢改。比如公司一个上古库在各个项目中都用到了,这时候你在库中发现了一个bug,你敢不敢改?我猜大概率不敢,为什么?怕其它项目被改出bug。如果库有单元测试,你改完库的bug后跑一下单元测试,全部通过。你心里多少有点底,应该不会有什么问题。

    从另一方面说,测试覆盖也是一种学习的手段。学习什么呢?学习为什么有些代码没有被覆盖到,以及为什么有些代码变了测试却没有失败。理解“为什么”背后的原因,程序员就可以做相应的改善和提高,相比凭空想象单元测试的有效性和代码的好坏,这会更加有效。

     

    配置测试覆盖率

    测试覆盖率如何配置,vue-test-utils写的很清楚。

     

    覆盖率报告

    配置完成后运行

    npm run test // 或者 yarn test

    会得到一份报告,我们找到存放报告的路径,打开报告。

     

    如何看覆盖率报告

    测试报告分四个部分:

    statement:语句覆盖率,顾名思义,有多少语句被测到。branches:分支覆盖率,有多少逻辑分支被测到。function:函数覆盖率,有多少个函数被测到。lines:线路覆盖率,有多少个逻辑线路被测到。

     

    好的测试覆盖率标准

    80%以下不及格,90%以上可以用,95以上优秀。

    我们看下前端框架vue的测试覆盖率:

    97.38%!很明显这是一个令人放心的库。 

    Processed: 0.016, SQL: 9