前端自动化测试

unit测试:

  karma-jasmine

  karma-mocha

e2e测试:

  nightwatch

 

Karma优点:

  • 支持多浏览器的测试: 能帮助你开发出多个浏览器兼容的应用。而且支持移动设备的浏览器,只需要在启动karma服务后,用手持设备连接到karma的服务即可。
  • 无测试框架限制 Jasmine,Mocha...
  • 有文件监控功能,保存文件触发测试执行。

单元测试的必要性: 

 页面前端逻辑复杂度与日俱增,前端工程师写出来的JavaScript变得庞大甚至臃肿,维护的难度不断加大,你需要一个javascript单元测试框架,用于降低维护javascript代码时的出错风险,保证重构后的代码的兼容性,最重要的是减少人肉测试的过程,降低js代码维护成本。jasmine无疑是目前最优秀的javascript单元测试框架之一

所谓BDD(行为驱动开发,Behaviour Driven Development),是一种新的敏捷开发方法。Dan North对BDD给出的定义为:

BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,可以具有带有良好定义的输出(即工作中交付的结果):已测试过的软件。

BDD与TDD(Test Driven Development )的主要区别是,使得非程序人员也能参与到测试用例的编写中来,大大降低了客户、用户、项目管理者与开发者之间来回翻译的成本。所以BDD更加注重业务需求而不是技术[1]。

 

下面是一些框架的测试方式:

vue:

unit:karma-jasmine 在chrome、Safari、Firefox上测试

cover:

var options = Object.assign(base, {
    browsers: ['PhantomJS'],
    reporters: ['mocha', 'coverage'],
    coverageReporter: {
      reporters: [
        { type: 'lcov', dir: '../coverage', subdir: '.' },
        { type: 'text-summary', dir: '../coverage', subdir: '.' }
      ]
    },
    singleRun: true,
    plugins: base.plugins.concat([
      'karma-coverage',
      'karma-phantomjs-launcher'
    ])
  })

sauce:

??不懂

单测主要是karma-jasmine

e2e:

nightwatch、selenium、phantomjs

 

react:

jest

Jest 是Facebook的一个专门进行Javascript单元测试的工具,之前仅限他们的前端工程师在公司内部使用,后来开源出来,它是在Jasmine测试框架上演变开发而来,使用了我们熟知的expect(value).toBe(other) 这种断言格式。

 

posted @ 2017-03-15 19:15  张琼  阅读(1011)  评论(0编辑  收藏  举报