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
> testapplication@1.0.0 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