`
wfsheep
  • 浏览: 17221 次
文章分类
社区版块
存档分类
最新评论

MV*浏览器单元测试+代码覆盖率

 
阅读更多

好久没写BLOG了,最近弄了一个前端单元测试加代码覆盖率测试框架,使用起来非常简单,具体使用方法和介绍如下,先上图,结果如下:

github地址:https://github.com/wf123537200/FeTestAndCov


frontEnd-test-and-cov

这是一个便捷,快速的,浏览器友好的单元测试框架。

提供功能为:

1、提供实时前端单元测试结果。

2、提供单元测试覆盖率实时显示。


为什么有这个框架?

因为作为前端一直想实现tdd开发,之前受到几种限制:

1、使用jq的年代,dom操作实在无法按照逻辑做单元测试,因为dom的结构变化太多了。

2、当使用mv*框架却又没有前端直观的前端测试时,很难做到tdd。

3、前端代码没有测试,往往无法重构和保证质量

框架基于什么技术?

1、mocha,这里使用mocha的浏览器支持

2、coverjs,使用coverjs进行代码插针,用于覆盖率统计

3、reporter,使用一位外国仁兄自己写的一个覆盖率报告插件,修复了相关BUG。


框架如何使用?

简化版本:

1、拷贝all.js和all.css到能引用的目录下,然后参照test/runner.html和test/spec.js写测试代码即可,刷新runner.html即可看到效果。

2、覆盖率统计,需要使用converjs或者使用grunt版本

grunt版本,自动插针覆盖率

1、当然是从github下载代码

2、然后将以下代码加入你的Package.json(如果你不知道这是啥,我只能说你不是做前端的。。)

具体代码如下,其实主要就是安装grunt和两个插件,如果你的代码里面已经有了,那么恭喜你,可以不加上了:

    "grunt": "~0.4.0",
    "grunt-coverjs": "*",
    "grunt-contrib-watch": "~0.5.3",
    "load-grunt-tasks": "~0.3.0",

3、执行npm代码 npm install

4、然后创建GruntFile.js(如不明白可参考,www.gruntjs.net),如已存在,可以跳过

5、向GruntFile.js里面加入如下代码(目录结构可以根据当前目录结构进行改变):

 // prefix 预处理部分,由于grunt-cover有错误,所以需要使用自带文件对其进行copy
    // 也可以直接将工程vendor/js/grunt-coverjs/coverjs文件拷贝到node_modules/grunt-coverjs/tasks下,覆盖同名文件
    copy: {
      main: {
        files: [
          {expand: true, flatten: true, src: ['vendor/js/grunt-coverjs/*'], dest: 'node_modules/grunt-coverjs/tasks', filter: 'isFile'}
        ]
      }
    },
  // 自动做插针合并以及监控代码
      cover: {
        compile: {
          files: [{
            // 测试代码存放地址
            'test/dist/test.js':
            // 原工程代码存放地址
            ['src/*.js']
          }]
        }
      },
      watch: {
        js: {
          files: [
            // 需要监控变化的代码
            "src/*.js"
          ],
          tasks: ['cover']
        }
      }
      // 由于grunt-coverjs有bug,需要做修复,这里需要做个修复
      grunt.registerTask('preFix', ['copy']);
      // 注册grunt任务,也可以修改default名称
      grunt.registerTask('default', ['cover', 'watch']);

6、如果一切都OK,在当前工程根目录下执行grunt pre(仅第一次需要执行), grunt,你就可以开始编写测试代码了。

7、测试代码样例如工程目录test/runner.html(只需要引入all.js和all.css即可),和test/spec.js,nb的你肯定一看就明白了。

8、获得结果,只要直接打开runner.html就可以看到测试结果。


分享到:
评论

相关推荐

    软件测试中的自动化测试与代码覆盖率.pptx

    ### 软件测试中的自动化测试与代码覆盖率 #### 第一章:软件测试中的自动化测试与代码覆盖率 **自动化测试**是指使用特定的工具或脚本来执行预定义的测试用例,以验证软件产品的功能是否符合预期的行为。这种方式...

    代码覆盖率驱动的测试资料.docx

    本文主要探讨了如何利用代码覆盖率工具EMMA来进行测试,并详细介绍了在Android工程中使用EMMA进行单元测试覆盖率检查的步骤。 EMMA是一个开源的Java程序测试覆盖率工具,它通过字节码插装技术在运行时收集覆盖率...

    多浏览器的单元测试工具 多浏览器集成的JavaScript单元测试工县 共28页.pdf

    本文将探讨如何集成多浏览器的JavaScript单元测试工具,以确保代码在多种浏览器环境下都能正常工作。 **选择内核** 在实现多浏览器测试时,我们需要考虑各种浏览器的内核。常见的浏览器内核有: 1. **Trident** -...

    android超炫的图片浏览器(图 + 代码 + 注解)

    这个主题“android超炫的图片浏览器(图 + 代码 + 注解)”聚焦于如何实现这样一个应用组件,为用户提供流畅、高效的图片查看体验。以下是一些关键知识点: 1. **图片加载库**:在Android上展示大量图片时,需要...

    cn用户手册

    通过以上对Cantata++用户手册中各部分内容的总结与解析,我们可以清晰地了解到Cantata++作为一个综合性的软件测试工具,不仅覆盖了从单元测试到集成测试、从动态测试到静态分析的全面测试功能,还提供了丰富的技术...

    单元测试报告参考模板

    2. **测试目标**:明确本次单元测试的目的,例如验证代码功能、提高代码覆盖率、发现并修复bug等。 3. **测试范围**:列出本次测试所覆盖的模块或功能,确保所有关键部分都得到测试。 4. **测试策略**:描述采用的...

    软件测试系列之单元测试

    单元测试的核心在于设计有效的测试案例来覆盖被测单元的所有可能路径和边界条件。以下是一些关键的概念和技术: 1. **代码覆盖率**:衡量测试案例对源代码覆盖程度的指标。包括语句覆盖率、分支覆盖率、条件覆盖率...

    软件测试中的黑盒测试与白盒测试技巧.pptx

    单元测试是针对代码的最小单元进行测试,通过在开发阶段发现和解决问题,有助于提高软件质量和稳定性。每个独立的代码片段都需要经过单元测试以确保其功能正确无误。 **集成测试** 集成测试是测试模块间交互是否...

    于MFC的图片浏览器(源码+论文

    8. **示例图片**:为了测试图片浏览器功能,可能会包含一些示例图像文件,如`.jpg`、`.png`等。 通过研究这个项目,开发者可以深入理解MFC如何处理图像显示、文件操作、用户交互等,同时也能了解如何将理论知识应用...

    测试代码举例测试代码举例

    1. **单元测试**:单元测试是最基础的测试类型,目标是检查代码的最小可测试单元,如函数或方法。通过单元测试,开发者可以确保每个独立的部分都能正确执行。 2. **集成测试**:当单个组件经过验证后,集成测试用于...

    文思软件测试笔试+面试题

    - 进行单元测试、集成测试、系统测试和验收测试。 - 应用代码覆盖率工具,如JaCoCo,以量化代码覆盖程度。 - 持续集成和持续测试,确保每次代码更改后都进行测试。 10. **测试Google主页**: - 页面加载速度...

    WEBKIT测试TEST工程

    2. **JSCoverage**:用于JavaScript代码覆盖率分析,帮助找出未被测试的代码。 3. **LayoutTests**:Webkit的官方测试集合,包含了大量的HTML、CSS和JavaScript测试用例。 4. **Valgrind**:内存错误检测工具,可...

    karma单元测试代码(全)

    **Karma单元测试代码(全)** 在软件开发过程中,单元测试是确保代码质量的关键步骤。Karma,结合Jasmine,提供了一种强大的工具来执行JavaScript的单元测试。本资源包含了一个集成Karma和Jasmine的单元测试代码示例...

    GWTTestcase的单元测试

    5. **覆盖率工具**:可能会提到代码覆盖率工具,如Cobertura或JaCoCo,以帮助开发者了解测试的全面性。 6. **测试最佳实践**:分享编写高效、可维护的测试的技巧,如避免依赖于具体实现细节,使用断言来验证结果等...

    JAVASCRIPT驱动开发小教程-BY KISSY TEAM

    - **测试脚本 + 驱动真实浏览器** - **直接在浏览器中进行单元测试** - **模拟环境下进行单元测试** #### 五、单元测试 单元测试是一种软件测试方法,它将程序拆分为独立的模块或函数进行测试。这样做可以确保每个...

    基于javaScript+css+html实现仿夸克浏览器主页+源码+文档(毕业设计&课程设计&项目开发)

    项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于javaScript+css+html实现仿夸克浏览器主页+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并...

    单元测试,firefox浏览器+selenium录入回放测试

    在IT行业中,单元测试是一种重要的软件质量保证方法,它的主要目标是验证代码的各个独立模块是否按照预期工作。本主题将深入探讨如何结合Firefox浏览器和Selenium进行单元测试,以及如何利用JMeter进行测试和Bugfree...

    Java测试与与设计——从单元测试到Web测试

    《Java测试与设计——从单元测试到Web测试》这一主题深入探讨了软件开发中的关键环节:测试。在软件工程中,测试是确保软件质量、功能完整性和用户满意度的重要步骤。本文将围绕“单元测试”和“Web测试”两个核心...

    firefox浏览器驱动+selenium,firefox浏览器驱动+selenium,使用firefox浏览器自动化测试

    本文将深入探讨如何使用Firefox浏览器驱动与Selenium进行自动化测试,以及相关的技术要点。 首先,Selenium是一个开源的Web应用程序自动化测试框架,它支持多种浏览器,包括Firefox。Selenium WebDriver是Selenium...

    软件测试中的黑盒测试与白盒测试技巧7.pptx

    - **单元测试**:针对代码中的最小可测试单元(如函数、方法等)进行独立测试,确保每个单元都能按预期工作。 - **集成测试**:测试多个模块之间的接口和交互,确保这些模块能够协同工作,共同完成复杂任务。 - ...

Global site tag (gtag.js) - Google Analytics