持续集成之测试篇
持续集成单元测试(unit)karmaKarma 是Google开源的一个基于Node.js 的 JavaScript 测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到 CI (Continuous integration)工具,也可和其他代码编辑器一起使用。 我们测试用的无界面浏览器phantomjs。测试框架使用mocha和chai。 以下是我们项目中使用的主要配置信息: /** * 测试启动的浏览器 * 可用的浏览器:https://npmjs.org/browse/keyword/karma-launcher */browsers: ['PhantomJS'],/** * 测试框架 * 可用的框架:https://npmjs.org/browse/keyword/karma-adapter */frameworks: ['mocha', 'chai'],/** * 需要加载到浏览器的文件列表 */files: [ '../../src/dcv/plugins/jquery/jquery-1.8.1.min.js', '../../src/dcv/plugins/common/mock.min.js', '../../src/dcv/plugins/common/bluebird.min.js', '../../src/dcv/javascripts/uinv.js', '../../src/dcv/javascripts/uinv_util.js', '../../src/dcv/javascripts/browser/uinv_browser.js', 'specs/validators.js'],/** * 排除的文件列表 */exclude: [],/** * 在浏览器使用之前处理匹配的文件 * 可用的预处理: https://npmjs.org/browse/keyword/karma-preprocessor */preprocessors: { //报告覆盖 "../../src/dcv/javascripts/**/*.js": ["coverage"]},/** * 使用测试结果报告者 * 可能的值: "dots", "progress" * 可用的报告者:https://npmjs.org/browse/keyword/karma-reporter */reporters: ['spec', 'coverage'],/** * 使用reporters为"coverage"时报告输出的类型和那目录 */coverageReporter: { type: 'html', dir: 'coverage/'},/** * 服务端口号 */port: 9876,/** * 启用或禁用输出报告或者日志中的颜色 */colors: true,/** * 日志等级 * 可能的值: * config.LOG_DISABLE //不输出信息 * config.LOG_ERROR //只输出错误信息 * config.LOG_WARN //只输出警告信息 * config.LOG_INFO //输出全部信息 * config.LOG_DEBUG //输出调试信息 */logLevel: config.LOG_INFO,/** * 启用或禁用自动检测文件变化进行测试 */autoWatch: true,/** * 开启或禁用持续集成模式 * 设置为true, Karma将打开浏览器,执行测试并最后退出 */// singleRun: true,/** * 并发级别(启动的浏览器数) */concurrency: Infinity在package.json中配置如下: ...