写一些单元测试来保证代码的质量和可维护性是码农必须要做的事,通常来说,写一点代码,写一点测试是一种很好的实践,然而身为前端码农,写出的代码可能需要运行在很多环境当中。如果我们写一点代码,然后就在IE6789,Chrome,Firefox,Safari,可能还有山寨浏览器abcd中人肉测试的话,实在是太崩溃了。幸好,大神们除了给我们提供了QUnit,YUITest,Jasmine等等单元测试框架之外,还提供了一些自动化测试工具,比如jsTestDriver,Selenium(Selenium Grid 2),以及本篇要介绍的Yeti,让我们能够更高效的写“有质保”的代码。
这3种自动化测试工具中,专注于提供本地自动化测试的就是来自YUI团队的Yeti了,它能够支持Qunit、YUITest、Jasmine、Mocha写成的单元测试,通过命令行可以方便的搭建Hub服务,并且能集成到WebStorm等IDE环境中,一键测试所有环境;来自google的jsTestDriver是全能型的,既适合在本地环境快速测试,又能够集成到CI中,执行代码提交后的自动化测试,也有QUnit的Adapter(这是能支持较新QUnitAPI的分支版本,jsTestDriver官方Wiki中的Adapter太旧了)来支持Qunit API写成的测试,但我始终觉得jsTestDriver少了点什么,没有选用……;ThoughtWorks的Selenium是一款Web自动化测试框架,提供了API来支持自动化的界面测试,做测试的同学应该比较熟悉。YUI团队提供了YUITest Selenium Driver,能够让Selenium运行YUITest的单元测试。Selenium运行需要每次驱动浏览器打开和关闭,不太适合本地环境快速的反馈循环。在《WEB前端的自动化测试-Selenium篇》会介绍如何在Selenium Grid 2中运行YUITest。
安装
Yeti是NodeJS的一个模块,能够使用npm很方便的安装。
$ npm install -g yeti
这样就可以在命令行直接使用yeti命令来执行测试了。
快速开始
$ yeti test/*.html
该命令会在创建一个一次性的Hub服务 http://localhost:9000/ ,打开需要测试的浏览器连接到该服务,在命令行回车后,就会开始在各个浏览器中测试相对路径test/*.html
指定的单元测试页面。
一般在开发中,不会这样使用Yeti,每次创建服务太浪费时间。
创建Hub服务
$ yeti --server
会创建一个默认端口是9000的Hub服务 http://localhost:9000/,也可以用--port
参数来指定端口。该命令会占用一个命令行终端,运行测试需要打开新的命令行终端。可以用这个Hub服务来捕获需要测试的浏览器,如果本地LAN有WIFI,那么移动终端的浏览器也可以很方便的测试,如果没有WIFI,可以参考结合localtunnel使用,方便移动终端测试。
$ yeti --hub http://localhost:9000/ test/*.html
在另外的命令行中执行该命令,就可以在已连接的浏览器中测试了。--hub
参数指定Hub服务的地址。
虽然一行命令就可以自动运行测试了,但是能够一行命令都不输入就更快了吧。
集成Yeti到WebStorm
WebStorm是非常好用的前端IDE,jetbrains的其他IDE应该也都是神器,就是卖的比较贵,本屌丝只能先用着google到的分享帐号。
在WebStrom的设置中可以添加扩展工具,File>Settings>External Tools面板中,点选黄色的+号。
主要需要设置Program, Parameters, Working derectory三项:Program是选择命令行运行的程序,因为Yeti是NodeJS模块,所以是需要你机器中node.exe的路径;Parameters就是node的参数,这里需要找到Yeti的安装目录,具体怎么找请google一下吧。Yeti的可执行文件后面需要跟上Yeti的参数,–hub指定Hub服务地址,后面则是需要测试的页面路径,图中的设置是WebStorm提供的路径参数(这些参数可以点击Insert macro按钮后选择),$FileRelativePath$指当前鼠标选中的文件相对Project目录的路径;Working directory是当前命令工作的目录,这里把它指向Project根目录了。这里的路径可能需要注意下,如果测试页面中有相对路径的js或其他资源,命令中的测试页面路径的顶层目录需要把这些资源包含进去,否则在测试时就会产生404。这里的表述不太清楚,懒得再截图了=。=!
设置完毕后,就可以选中项目中的测试页面,右键菜单中可以找到刚配置过的yeti,点击yeti选项就可以执行该页面的测试了。同样的,也可以再配置一份命令来运行整个项目的单元测试。
当然,也可以给yeti扩展设置快捷键,同样是Settings>Keymap面板,找到External tools下的yeti,双击并选择Add Keyboard Shortcut,就可以按组合键设置了。
测试后会返回结果,如果有测试没有通过,会打印未通过的测试信息。但是貌似只对YUITest有良好支持,使用QUnit测试,只有偶尔能得到未通过的测试信息-。-
yeti还有些其他参数如--timeout
、--query
,以及config文件和输出Junit格式的报告等功能,具体可以参考Yeti主页或Github上的文档。
欢迎留言讨论。
相关推荐
Jekyll & Yeti 使用模块化的 Foundation 组件,允许您删除不必要的 css 和 js 以加快页面加载速度。 剩下的 sccs 被编译,css 和 js 被压缩并连接到最终的 Grunt 构建中。 Scss: 所有 Foundation Scss 组件都在主 ...
安装ember install ember-yeti-table为什么选择雪人桌? 与其他表解决方案相比,最大的区别可能是Yeti Table使用模板定义列。 在许多其他表格解决方案中,您需要在javascript中定义列。 Yeti Table源自尝试在模板中...
胡博雪人Hubot 的所有雪人有关...安装在hubot项目仓库中,运行: npm install hubot-yeti --save 然后将hubot-yeti添加到您的external-scripts.json : [ " hubot-yeti " ]示例交互 user1>> hubot hellohubot>> hello!
6. **工作流程**:Yeti与Maya的集成非常紧密,允许用户在Maya的现有工作流中无缝切换,同时提供脚本和API接口,便于进行自定义扩展和自动化工作流程。 总结来说,Yeti v1.3.14作为一款专业的毛发插件,为Maya用户...
Yeti 是一个浏览器上的 JavaScript 测试运行器,基于 Node.js。你可以使用 Yeti 来测试 YUI 每个部件。 安装和使用: $ npm install -g yeti $ yeti test/*.html Connected to http://localhost:9000 Agent ...
《WordPress主题雪人Yeti1.9.2详解》 WordPress作为全球最受欢迎的开源内容管理系统,拥有丰富的主题库,其中“雪人Yeti”是一款备受用户喜爱的主题之一。本文将详细解析Yeti 1.9.2版本,帮助你更好地理解和运用这...
Maya毛发插件Yeti 1.2.16版,Peregrine Labs Yeti v1.2.16 For Maya 2012-2014 Win64
java采购管理系统源码Yeti Java OpenGL 引擎 概括 该引擎是我的个人项目,因此不建议将其用于严肃的项目(例如严肃的游戏开发工作)。 我试着把它记录得体面,所以人们可能会从中学到一些东西。 或者至少了解将来要...
在Yeti-switch文档中,可能会涵盖如何利用这些新特性,结合Yeti-switch实现更丰富的用户体验。 响应式设计是现代网页开发的重要组成部分,确保网页在不同设备上都能良好显示。Yeti-switch可能提供了一种便捷的方式...
标题中的"yeti-engineering"是一个个人网站项目,它采用了现代Web开发的主流技术栈——MERN,即MongoDB、Express、React和Node.js。这个技术组合为构建动态、交互式的Web应用程序提供了全面的解决方案。 1. **...
未来的发展方向可能包括自动化测试、持续集成、以及容器化和微服务架构的集成测试。自动化测试能够减少人工干预,提高测试效率;持续集成则是将测试过程与开发过程紧密集成,实现快速反馈;而容器化和微服务架构的...
Yeti-Maven-Template-Project yeti-maven-plugin的模板项目只是git克隆它。 使用mvn:compile尝试一下。 在目标/类中,现在应该有一个Foo.class和org / foo / foom.class。 调整pom.xml以包括您的group / artifactId...
"yeti-master" 很可能表示这是一个 YETI 的源码仓库,其中包含主分支的全部代码,可能是从 Git 版本控制系统导出的。"master" 通常代表项目的主分支,意味着这是最新、最稳定的版本。 **综合知识点:** 1. **Tiny...
Tag Yeti是一个扩展,可帮助您可视化最常用的Evernote标签。只需用贴纸标记一个网站,Tag Yeti就会为你保留。所以你可以找回重要的东西。 1.为不同的主题创建贴纸。 2.浏览时用贴纸组织网页。 3.您的贴纸与您的印象...
"Yeti 1.5 WordPress 主题"是一款专为WordPress平台设计的强大且具有娱乐性质的网站主题,尤其适合那些希望创建幽默、轻松内容的站点,如糗事百科类的社区。这款主题以其长久的稳定性、良好的SEO优化以及官方定期...
bootswatch_yeti-主题PyroCMS v3 的 Bootswatch Yeti 主题v1.0.0-dev通过下载安装: 1:如果尚未创建:创建要安装插件的目录。 2:复制到: /addons/shared/enlivenapp/ -或- /addons/[SITE_REF]/enlivenapp/ full ...
Karma可以与Mocha、Jasmine等测试框架结合使用,提供了一个强大的自动化测试解决方案。 6. **npm**:npm(Node Package Manager)是Node.js的包管理器,它允许开发者方便地安装、共享和管理依赖项。在这个压缩包中...
更新版本 0.2.1 26-11-2014 Chrome 扩展使用 compileserver 中的构建作为单独的项目 26-11-2014 修复了节点不理解的 npm 模块日志 jar 中的错误25-11-2014 添加了 webserver 以使用编译器/repl 作为本地 rest-api ...
2. 按测试任务分类:例如压力测试、兼容性测试、自动化测试等,针对不同测试目标采取不同的策略。 四、基于云计算的计算机软件测试架构 云计算环境下的软件测试架构主要包括以下几个方面: 1. 云测试平台:如...
例如3.3.0版本的雪人主题的发布与3.3.0-yeti分支版本标识符yeti 。 因此,在通过Bower安装主题时,可以同时使用标记和分支名称。 使用bootswatch-dist,可以通过Bower轻松安装Bootswatch主题。从航站楼对于确切的...