avalon1.6开发得差不多,这次使用先进的开发理念进行开发,比如模块化,单元测试什么。。。

ui测试是重要的一环,之前用阿里的totoro,但打开浏览器不方便。于是从webdrieverio, nightwatch,一直找到karma!

karma的官网尤其烂,我搞了好久才能运行起来

用到的npm模块有:

  1. karma
  2. karma-mocha
  3. karma-mocha-reporter
  4. karma-firefox-launcher
  5. karma-chrome-launcher
  6. karma-opera-launcher
  7. karma-safari-launcher

在你项目下添加karma.config.js

  1. module.exports = function (config) {
  2. config.set({
  3. basePath: '',
  4. frameworks: ['mocha'],
  5. files: [
  6. {pattern: 'node_modules/chai/chai.js', include: true},
  7. 'karma/index.js'
  8. ],
  9. exclude: [],
  10. reporters: ['mocha'],
  11. mochaReporter: {
  12. output: 'autowatch',
  13. colors: {
  14. success: 'green',
  15. info: 'bgGreen',
  16. warning: 'cyan',
  17. error: 'bgRed'
  18. }
  19. },
  20. port: 9876,
  21. colors: true,
  22. logLevel: config.LOG_INFO,
  23. //autoWatch为true,Karma将自动执行测试用例
  24. autoWatch: true,
  25. //http://www.cnblogs.com/NetSos/p/4371075.html
  26. browsers: ['Opera','Chrome', 'Firefox',"Safari"],
  27. singleRun: false,
  28. plugins: [
  29. 'karma-mocha',
  30. 'karma-mocha-reporter',
  31. 'karma-firefox-launcher',
  32. 'karma-chrome-launcher',
  33. 'karma-opera-launcher',
  34. 'karma-safari-launcher'
  35. ]
  36. })
  37. }

然后我们在此项目中建立一个叫karma的目录,里面建index.js

  1.  
  2. /**
  3. * Created with IntelliJ IDEA.
  4. * User: shenyanchao
  5. * Date: 3/5/13
  6. * Time: 5:51 PM
  7. * To change this template use File | Settings | File Templates.
  8. */
  9.  
  10. var assert = chai.assert;
  11. var should = chai.should();
  12.  
  13. describe('Array', function(){
  14.  
  15. before(function(){
  16. console.log('this called in before all');
  17. });
  18. beforeEach(function(){
  19. console.log('invoke before each method');
  20. });
  21.  
  22. afterEach(function(){
  23. console.log('invoke after each method');
  24. });
  25. after(function(){
  26. console.log('this called in after all');
  27. });
  28.  
  29. describe('#indexOf()', function(){
  30.  
  31. it('should return -1 when the value is not present', function(){
  32. console.log('invoke one assert');
  33. assert.equal(-1, [1,2,3].indexOf(5));
  34. assert.equal(-1, [1,2,3].indexOf(0));
  35.  
  36. });
  37. });
  38.  
  39. describe('#indexOf()', function(){
  40.  
  41. it('should return -1 when the value is not present', function(){
  42. console.log('invoke second should');
  43. [1,2,3].indexOf(5).should.equal(-1);
  44. [1,2,3].indexOf(0).should.equal(-1);
  45. });
  46. });
  47. })

然后执行karma start命令就能看到效果

大家还看不懂,可以看这里

使用karma做多浏览器的UI测试的更多相关文章

  1. angular单元测试与自动化UI测试实践

    关于本文:介绍通过karma与jsmine框架对angular开发的应用程序进行单元与E2E测试. angular单元测试与集成测试实践 先决条件 创建项目 webstorm中创建空白web项目 创建 ...

  2. 记录项目代码迁移后,UI测试框架的搭建(配置文件的修改、测试脚本试运行)

    前文:记录一次项目代码迁移过程 上文代码迁移的目的就是为了新增vue脚手架自带的UI测试框架,工具有了,就需要实践运行在项目中了(修改配置文件.编写测试脚本等). 一.单元测试 测试框架 karma ...

  3. 编码的UI测试项目——Visual Studio 2013

    今天实现了一次编码的UI测试项目,以下是我进行测试的过程: 1.新建测试项目 在visual studio中(我用的版本是2013 update2)点击文件->新建->项目,选择“编码的U ...

  4. H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试

    一.概述 1.1 什么是H5 H5 即 HTML5,是最新的 Web 端开发语言版本,现如今,大多数手机 APP 页面会用 H5 实现,包括 PC Web 站点也会用它开发实现.所以 Web 的通用测 ...

  5. 《软件测试自动化之道》读书笔记 之 底层的Web UI 测试

    <软件测试自动化之道>读书笔记 之 底层的Web UI 测试 2014-09-28 测试自动化程序的任务待测程序测试程序  启动IE并连接到这个实例  如何判断待测web程序完全加载到浏览 ...

  6. ant design pro (十二)advanced UI 测试

    一.概述 原文地址:https://pro.ant.design/docs/ui-test-cn UI 测试是项目研发流程中的重要一环,有效的测试用例可以梳理业务需求,保证研发的质量和进度,让工程师可 ...

  7. iOS 单元测试和UI测试教程

    原文:iOS Unit Testing and UI Testing Tutorial 作者:Audrey Tam 译者:kmyhy 编写测试不是为了追求刺激,测试是为了避免你崭新的 App 变成了充 ...

  8. 利用 Rize 来进行 UI 测试或 E2E 测试

    之前我曾经在<Rize - 一个可以让你简单.优雅地使用 puppeteer 的 Node.js 库>一文简单介绍过 Rize 这个库.当时仅仅是介绍这个库本身,关于如何使用,我没有给太多 ...

  9. 关于UI测试自动化的考虑

    针对IE的测试使用.net体系是比较方便的,利用process启动IE,再把IE进程转换成IExplore对象,就可以随意的操纵html dom了 针对Firefox的测试使用selenium也是比较 ...

随机推荐

  1. Python利用脚本2.x到3自动转换

    本文介绍一下在windows 10 环境下如何使用这个工具: 1)首先要先安装好python3,可到官网下载https://www.python.org/ 2)使用Windows 命令提示符(cmd) ...

  2. Android:真机调试遇到的问题(INSTALL_FAILED_CANCELLED_BY_USER和INSTALL_FAILED_INSUFFICIENT_STORAGE)

    Android:真机调试遇到的问题(INSTALL_FAILED_CANCELLED_BY_USER和INSTALL_FAILED_INSUFFICIENT_STORAGE) 刚开始做Android开 ...

  3. 在线安装CM集群

    https://www.cloudera.com/documentation/manager/5-0-x/Cloudera-Manager-Installation-Guide/cm5ig_insta ...

  4. fastclick.js解决移动端(ipad)点击事件反应慢问题

    参考http://blog.csdn.net/xjun0812/article/details/64919063 http://www.jianshu.com/p/16d3e4f9b2a9 问题的发现 ...

  5. c# 线程 WPF 进度百分比(菜鸟)

    #region 线程执行 /// <summary> /// 线程运行,将改变的textblock值实时显示在前台 /// </summary> /// <param n ...

  6. web api 本地测试

    [最简单的,本人小白,大神勿喷] 一:创建web API 服务端 ①创建web api 的项目 ②在这个api项目的Web.config中加上如下几段话: <httpProtocol>&l ...

  7. 20165205 2017-2018-2 《Java程序设计》第五周学习总结

    20165205 2017-2018-2 <Java程序设计>第五周学习总结 教材学习内容总结 学会内部类,匿名类,异常类的写法 牚握try...catch...finally处理异常的方 ...

  8. ORACLE 监听配置

    安装后最开始如下 # listener.ora Network Configuration File: D:\oracle\app\Administrator\product\11.2.0\dbhom ...

  9. 解决oracle导入未分配表空间的问题

    select 'alter table ' || t.TABLE_NAME || ' allocate extent;' from user_tables t order by t.TABLE_NAM ...

  10. python 小笔记

    1 删除非空文件夹 import shutil shutil.rmtree('c:\\test') print 'ok' ## 判断非空删除 if os.path.exists('../'+kemu_ ...