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了進去