如何在 Visual Studio Code 執行 Wallaby 單元測試?
很羨慕 Visual Studio 有 Alive 可以即時跑單元測試嗎?只要安裝了 Wallaby,在 Visual Studio Code 也可以如 Alive 一樣為 Angular 即時跑 TypeScript 與 Jasmine 單元測試。
Version
Angular CLI 1.1.2
Angular 4.2.3
Wallaby 1.0.52
Visual Studio Code 1.14.0
安裝 Wallaby
- 按左側
Extension
按鈕。 - 搜尋
Wallaby
。 - 安裝
Wallaby.js
。
Visual Studio Code 關閉重新啟動後,會開始下載 Wallaby.js core
。
設定 Angular CLI
新增 wallaby.js
wallaby.js
1 | var wallabyWebpack = require('wallaby-webpack'); |
在專案的根目錄下新增 wallaby.js
。
注意
wallaby.js
為 JavaScript 檔,不是 TypeScript 檔。
新增 src/wallabyTest.ts
src/wallabyTest.ts
1 | import './polyfills'; |
在 src
目錄下新增 wallabyTest.ts
。
注意
wallabyTest.ts
為 TypeScript 檔,不是 JavaScript 檔。
src/tsconfig.app.json
src/tsconfig.app.json
1 | { |
12 行
1 | "wallabyTest.ts" |
新增 "wallabyTest.ts"
。
安裝 Node.js 套件
1 | ~/MyProject$ npm install wallaby-webpack angular2-template-loader electron --save-dev |
安裝 Wallaby 所需要的 Node.js 套件。
執行 Wallaby
- Start:⌘ + ⇧ + R, R
- Stop:⌘ + ⇧ + R, S
第一次執行時,會要求設定 config file。
選擇剛剛在根目錄建立的 wallaby.js
。
通過測試的案例,左側會出現綠燈
,下方也會顯示目前通過測試案例的個數。
不用按存檔就可以立即跑測試顯示紅燈
或綠燈
,且立刻顯示實際值與期望值的差異。
顯示 Code Coverage
寫單元測試的另外ㄧ件重大的事情,就是關心 code coverage 是否達到團隊目標。Wallaby 提供了 Wallaby App,只要輸入 http://wallabyjs.com/app
,就可以顯示目前整個專案的 code coverage 狀況。
不用擔心
http://wallabyjs.com/app
是連到外面,事實上它相當於http://localhost:51245
,還是跑在本機。
App
目錄顯示整個專案的 code coverage。- 也可以顯示單一檔案的 code coverage。
Wallaby App 可貴的地方在於他不是靜態 HTML report,而是隨著測試結果自動改變,隨時顯示最新的 code coverage。
Conclusion
- Wallaby 有各種版本,如 Visual Studio、WebStorm,甚至於 Sublime Text 與 Atom 也有支援。
- Wallaby 雖然是個付費軟體,但非常有其價值。
- TDD 會讓開發變慢,主要是因為工具不夠方便,Wallaby 讓我們寫單元測試的同時,就即時知道
紅燈
與綠燈
測試結果,將大幅提升 TDD 開發效率。
Reference
Wallaby.js Blog, Wallaby.js for Visual Studio Code
Wallaby, Angular.js 2 angular-cli (Webpack) generated project