Mocha 是当前比较流行的javascript自动化测试框架,详情介绍: http://mochajs.orgjavascript
Typescript 是微软支持的一种相似于javascript可是又有类型检测的语言前端
完整的测试例子见: http://git.oschina.net/dog/forward-cmsjava
如今愈来愈多的人开始用typescript去写前端或者node程序,楼主最近也在本身折腾typescript去构建一个cms项目。 为了便于测试一些代码因此搭建了Mocha测试环境,现把遇到的坑和学习过程分享:node
步骤1, 安装各类依赖: 1. npm install typeings -g npm install typescript -g npm install mocha -g, npm install ts-node 2. typings install dt~mocha -g, typings install dt~node -ggit
步骤2, 构建一个简单项目,例如项目:http://git.oschina.net/dog/forward-cmses6
步骤3,构建测试目录,在项目 forward-cms 下新建测试目录test: 1. 新建 mocha.opts --require babel-register --compilers ts:typescript --harmony --harmony-destructuring --es_staging
2. 新建 test.js ``` require('ts-node').register(require('../tsconfig.json')); var fs = require('fs'); var path = require('path');typescript
//加载测试文件 function loadTest(dir) { let files = fs.readdirSync(dir); for(var f of files) { let stats = fs.statSync(path.join(dir, f)); if (stats.isDirectory()) { loadTest(path.join(dir, f)); } if (!/\w+\.test\.ts/.test(f)) { continue; } f = f.replace(/\.ts$/, ''); let file = dir + '/' + f require(file); } } loadTest(__dirname); ```
步骤4, 运行测试脚本: mocha //运行单个测试 mocha -g server/common.tsnpm
mocha 如今不支持es6,若是须要支持es6 须要安装babel-register,并在mocha.opts 加入 mocha 要想实时运行typescript,须要用ts-node mocha 要想使用-g去匹配单个测试用例,必须先把这个测试用例载入到内存中,因此我在test.js中把测试用例所有require了进去