65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Amazon Elastic Bamboo 实例上进行 AngularJS 单元测试

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2014 年 4 月 6 日

CPOL

2分钟阅读

viewsIcon

10521

如何在 Amazon Elastic Bamboo 实例上设置单元测试环境

背景

我正在开发一个基于 AngularJS 的全新 SPA Web 应用程序。这个框架的优点在于能够用单元测试覆盖应用程序的几乎所有方面。而且,如果你使用像 angular-seed 这样的样板代码,它提供了单元测试核心,你只需要用真实的测试来扩展它,那么上手就非常容易。

在 Windows 笔记本电脑上完成本地设置只需几分钟:克隆 angular-seed,运行 npm 安装必要的包,并检查 karma 单元测试运行器是否正常工作,以及示例测试是否通过。虽然你可能会遇到一些与 PATH 变量相关的小问题,但修复它们并继续并不需要花费太多时间。

然后就轮到设置服务器环境了。我不熟悉 Linux,而且当时甚至不知道安装了哪种 Linux。我所拥有的只有 SSH 访问权限。我检查了 nodenpmkarma 命令是否无法识别,并开始安装过程。经过多次尝试和错误,我卡在安装浏览器(尝试了 Chrome 和 Firefox)的步骤上,而浏览器对于 karma 单元测试运行器至关重要。存在对缺失 GTK+ 库的依赖,我最终放弃了这种方法。

但后来我发现了两件重要的事情:karma 支持的无头浏览器 PhantomJS,以及已经安装在服务器上的 node,但未在任何地方注册。所以我得到了一个干净的实例,并执行了以下步骤,最终得到了一个可用的环境。

Commands

查找已安装的 node,结果为 /opt/node-0.10/

find / -name node -print 2>/dev/null 

链接 nodenpm 二进制文件

cd /usr/bin 
sudo ln -s /opt/node-0.10/bin/node
sudo ln -s /opt/node-0.10/bin/npm 

安装必要的 npm 模块(我更喜欢全局部署)

sudo npm install karma -g 
sudo npm install phantomjs -g
sudo npm install karma-jasmine -g
sudo npm install karma-spec-reporter -g 
sudo npm install karma-phantomjs-launcher -g 

链接 karma 二进制文件

sudo ln -s /opt/node-0.10/lib/node_modules/karma/bin/karma 

修改 angular-seed 中的 karma.conf.js 配置文件,以使用 PhantomJS 浏览器

browsers: ['PhantomJS'], 
plugins: [ 
    'karma-spec-reporter', 
    'karma-phantomjs-launcher', 
    'karma-jasmine' 
] 

如果以上所有步骤都正确完成,那么 angular-seed 中的以下脚本应该报告单元测试执行成功(下面的脚本是 angular-seed 的早期版本的一部分,现在测试使用 npmpackage.json 中的配置执行)

bash /scripts/test.sh 

关注点

这对于那些没有太多 Linux/AWS/Bamboo 经验,但必须在相同的服务器配置中设置持续集成环境的人来说,应该是一个好的开始。

© . All rights reserved.