我試圖運行(使用命令npm run test
並調試我已使用IDE Webstorm
)使用節點開發的集成測試.js用打字稿,摩卡,chai和supertest編寫,用於使用打字機開發的節點應用程序。使用typecript,Mocha,Chai和SuperTest進行異步/等待節點api-functions的運行或調試集成測試nodeJs
在before()鉤子函數中,我們正在調用實際啓動服務的應用程序,並且此調用用於異步(使用async-await)函數(來自節點應用程序的app.ts/app.js文件)。
但始終我得到這樣的錯誤「錯誤:您無權訪問密鑰在谷歌KMS」(即服務),並加上它說:「錯誤:60000毫秒的超時超標。對於異步測試和鉤子,確保調用「done()」;如果返回Promise,請確保解決。',但如果我單獨運行服務/應用程序,它工作正常。所以這意味着在運行服務時,API /函數調用的異步/等待代碼是相同的。
所以我的觀點是,這是因爲從before()掛鉤函數啓動服務時,由於超時異步/等待請求而發生這種情況。
下面是test.int-test.ts文件的代碼示例,
import {expect} from "chai";
const app = require('../app');
const supertest = require('supertest');
describe("Test model", function() {
this.timeout(60000);
before(async() => {
api = supertest(await app);
// app is here a entry point for my service/application which runs actually service/applicaiton.
// This file has async-await function which makes call to third party application
console.log('inside before: ', JSON.stringify(api));
});
describe('get', function() {
it('should respond with 200 Success', async() => {
// call to async function
});
});
});
和的package.json板塊腳本下
"scripts": {
"test": "nyc --reporter=html --reporter=text --reporter=cobertura node_modules/mocha/bin/_mocha --reporter mocha-multi-reporters --reporter-options configFile=mocha-multi-reporters.config build/test/test.int-test.js"
}
任何人都可以面對這樣的情況呢?如何從集成測試文件啓動異步/等待服務。