web前端測試——mocha介面測試
執行環境:macbook(windows沒有測試)
條件:電腦安裝了node.js
第一步:
在桌面新建test資料夾,開啟sublim text,並將資料夾拖入sublim text,方便管理檔案
第二步:
開啟終端,輸入cd Desktop/test進入到該專案目錄
第三步:
執行npm init命令,一路回車,生成package.json檔案
第四步:
配置package.json並建立檔案mochaRunner.js檔案
開啟package.json檔案並在scripts欄位下新增:
"service":"node ./mochaRunner.js"
第五步:
建立介面資料,由於我們是測試介面的,所以我們要有一個介面可以供我們測試才行,
在test目錄下建立service目錄,並在service目錄下建立app.js檔案用來建立一個介面。
app.js內容:
var express = require("express");
var app = express();
app.get("/test",function(req,res){
res.send({
data:"Hello World"
});
});
var server = app.listen(3000,function(){
console.log("Server is Run");
});
module.exports = app;
第六步:
生成這個介面,並測試是否成功
在終端中輸入cd service進入到service這個目錄,執行node app.js
這時候會報錯:找不到express模組,我們需要安裝express包,終端輸入:npm install express --save-dev
重新執行node app.js
如果看到Service is Run說明已經啟動成功,開啟瀏覽器,輸入localhost:3000/test 回車
如果看到json資料,說明介面可以用,已經開啟
注意路徑是否輸入正確:
第七步:
編寫測試程式碼,並新增測試工具mocha
在service目錄下建立router.spec.js檔案,書寫測試程式碼,
router.spec.js內容:
const superagent = require("supertest");
const app = require("./app");
function request(){
return superagent(app.listen());
}
describe("介面測試",function(){
it("test文件介面測試",function(done){
request()
.get("/test")
.expect("Content-Type",/json/)
.expect(200)
.end(function(err,res){
if (res.data === "Hello World") {
done();
}else{
done(err);
}
})
});
});
在mochaRunner.js中書寫新增mocha工具的程式碼,
mochaRunner.js內容:
const Mocha = require("mocha");
const mocha = new Mocha({
reporter:"mochawesome",
reporterOptions:{
reportDir:"./docs/mochawesome-reporter"
}
});
mocha.addFile("./service/router.spec.js");
mocha.run(function(){
console.log("done");
process.exit();
});
第八步:
終端輸入:npm run service測試介面是否成功
由於我們引入了mocha、supertest等包,所以這時候執行npm run service肯定會報錯,提示找不到指定的包,這時候我們就按提示安裝包就行了,缺什麼就裝什麼
主要裝的包有:
npm install mocha --save-dev
npm install supertest --save-dev
npm install mochawesome --save-dev
第九步:
當所有要裝的包都裝完後再執行npm run service就會提示測試成功,這時候會在test目錄下生成docs目錄,裡面就是測試結果報告。
第十步:
瀏覽器中檢視報告
在docs目錄中找到mochawesome.html,並在瀏覽器中開啟,這時候就能在瀏覽器中看到我們的測試報告。
注意事項:
一、程式碼書寫正確。
二、需要安裝的包全部安裝完
三、介面生成成功。
四、瀏覽器中的地址輸入正確
五、package.json配置正確。
六、是否安裝在專案目錄,並進入到對應目錄執行命令。