安裝jesthtml
cnpm install --save-dev jest
查看版本前端
jest -V
首先要作的事情:我怎麼知道要測試些什麼?
若是你正在編寫 Web 應用,那麼一個好的起點就是測試應用的每一個頁面和每一個用戶交互。但 Web 應用由單元代碼組成,如函數和組件,須要單獨進行測試。不少時候有兩種狀況:node
對於這兩種狀況,你能夠經過將測試看做檢查給定函數是否產生預期結果來幫助本身。 如下是典型測試流程的樣子:git
只需這樣執行:輸入 - 預期輸出 - 斷言結果github
如下是一個完整的測試用例npm
//utils.js export function fixedZero(val) { return val * 1 < 10 ? `0${val}` : val; }
//utils.test.js import { fixedZero } from './utils'; ... // describe('函數分組測試描述',() => { // test('測試描述', () => { // expect("").toBe(""); // }); // }) describe('fixedZero tests', () => { it('should not pad large numbers', () => { expect(fixedZero(10)).toEqual(10); expect(fixedZero(11)).toEqual(11); expect(fixedZero(15)).toEqual(15); expect(fixedZero(20)).toEqual(20); expect(fixedZero(100)).toEqual(100); expect(fixedZero(1000)).toEqual(1000); expect(fixedZero(1000)).toEqual(1000); }); it('should pad single digit numbers and return them as string', () => { expect(fixedZero(0)).toEqual('00'); expect(fixedZero(1)).toEqual('01'); expect(fixedZero(2)).toEqual('02'); expect(fixedZero(3)).toEqual('03'); expect(fixedZero(4)).toEqual('04'); expect(fixedZero(5)).toEqual('05'); expect(fixedZero(6)).toEqual('06'); expect(fixedZero(7)).toEqual('07'); expect(fixedZero(8)).toEqual('08'); expect(fixedZero(9)).toEqual('09'); }); });
在命令行輸入npm test utils.test.js,咱們能夠看到命令臺的返回
瀏覽器
當咱們對一些比較龐大的項目,要進行成百上千個函數進行單元測試時,測試結果僅僅顯示在控制檯明顯不夠看。如何優雅的讓測試結果展現出來,並能夠詳細的觀察測試結果的具體問題呢?服務器
咱們會想到將jest的測試結果 --> 存儲 --> 發請求(簡單服務器) --> 發送到瀏覽器 --> 展現框架
Property | Description | Type | Default |
---|---|---|---|
testResultsProcessor | This option allows the use of a custom results processor. This processor must be a node module that exports a function expecting an object with the following structure as the first argument and return it: | string | undefined |
這個屬性能夠容許結果處理程序使用。這個處理器必須是一個輸出函數的node模塊,這個函數的第一個參數會接收測試結果,且必須在最終返回測試結果。能夠用與於接收測試結果,且在最終返回測試結果函數
首先咱們安裝它:cnpm install jest-html-report --save-dev
在jest.config.js中,具體配置jest-html-reporter的屬性
用到的屬性:
Property | Description | Type | Default |
---|---|---|---|
pageTitle | The title of the document | string | "Test Suite" |
outputPath | The path to where the plugin will output the HTML report | string | "./test-report.html" |
includeFailureMsg | If this setting is set to true, this will output the detailed failure message for each failed test. | boolean | false |
其餘屬性參考官方文檔:https://github.com/Hargne/jes...
完成jest.config.js中對jest-html-reporter的配置:
//jest.config.js module.exports={ ... testResultsProcessor:'./testReport', reporters: [ 'default', [ './node_modules/jest-html-reporter', { //輸出頁面標題 pageTitle: 'Test Report', //插件將會輸出的HTML報告的路徑。 outputPath:'testReport/JesttestReport.html', //爲每一個失敗的測試輸出詳細的失敗消息。 includeFailureMsg: true, }, ], ], }
再次在命令行輸入npm test utils.test.js,咱們能夠看到測試結果被成功返回在testReport/JesttestReport.html中
咱們打開這個html文件,測試結果的可視化就完成啦。