1. 程式人生 > >nodejs漸入佳境[33]-mocha測試與自動測試

nodejs漸入佳境[33]-mocha測試與自動測試

mocha

1
2
> npm init
> npm install --save-dev mocha  //開發者模式下有效,不會部署到伺服器上

package.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
 "name": "testapplication",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
   "test": "mocha **/*.test.js"

 },
 "author": "",
 "license": "ISC",
 "devDependencies": {
   "mocha": "^5.2.0"
 }
}

測試檔案

1
2
3
4
5
6
7
8
9
10

let add = (a,b)=>a+b;


it("test add",()=>{
   var res =  add(11,22);
   if(res!=33){
     throw
new Error(`Expected 33 ,but got ${res}`)

   }
});

測試

1
> npm test

返回:

1
2
3
4
5
6
7
> mocha **/*.test.js



 ✓ test add

 1 passing (4ms)

修改並測試

1
2
3
4
5
6
7
8
9
10

let add = (a,b)=>a+b;


it("test add",()=>{
   var res =  add(11,55);

   if(res!=33){
     throw new Error(`Expected 33 ,but got ${res}`)
   }
});

返回:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> [email protected] test /Users/jackson/Desktop/testApplication
> mocha **/*.test.js

 1) test add

 0 passing (4ms)
 1 failing

 1) test add:
    Error: Expected 33 ,but got 66
     at Context.it (add.test.js:8:15)



npm ERR! Test failed.  See above for more details.

自動測試

1
2
> npm install --save-dev nodemon
> nodemon --exec "npm test"

新增到指令碼中

package.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
 "name": "testapplication",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
   "test": "mocha **/*.test.js",
   "test-watch": "nodemon --exec \"npm test\""
 },
 "author": "",
 "license": "ISC",
 "devDependencies": {
   "mocha": "^5.2.0"
 }
}

執行:

1
>npm run test-watch

image.png