2017-09-04 1 views
0

実行中(コマンドnpm run testを使用し、デバッグにはIDE Webstormを使用しています) typescript、mocha、chai、およびsupertestで書かれた.jsは、typescriptを使用して開発されたノードアプリケーション用です。非同期/待機ノードapi-functionsのtypescript、Mocha、Chai、SuperTestを使用してnodeJsを使った統合テストを実行またはデバッグ

before()フック関数では、実際にサービスを開始するアプリケーションを呼び出しています。この呼び出しは、非同期(async-await)関数(ノードアプリケーションのapp.ts/app.jsファイル)。

しかし、常に私のようなエラーを取得しています:(すなわち、サービスに)「エラーあなたは、Google KMSでキーにアクセスする権限がありません」とプラスそれはエラーを言った:60000msのタイムアウトを超えました。非同期テストとフックでは、 "done()"が呼び出されていることを確認してください。プロミスを返す場合は、それが解決することを確認してください。 'ですが、サービス/アプリケーションを個別に実行しても問題なく動作しています。つまり、サービスを実行している間は、API /関数呼び出しのasync/awaitコードは同じです。

これは、before()フック関数からサービスを開始している間に非同期/待機要求がタイムアウトしたためです。以下は

誰がこのような状況に直面することはできますか?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" 
} 

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 
     }); 
    }); 
}); 

とセクションスクリプトの下で、test.int-test.tsファイル内のコードサンプルですか統合テストファイルから非同期/待機サービスを開始する方法。

答えて

0

最後に、統合テストを実行してデバッグするソリューションを見つけました。ここではほとんど変更を加える必要はありません。タイムアウトの問題に最も重要なの

  1. デバッグしている間、私たちは0すなわち**this.timeout(0)**
  2. としてタイムアウトを設定する必要がありモカフックアップの.jsファイルとして、.TSファイルを使用しない、WebStormでモカ・セットアップでファイルを.jsファイルを指している必要がありますテストを実行するだけでなくデバッグすることもできますが、.tsファイルを使ってテストを実行することもできます。 (https://journal.artfuldev.com/write-tests-for-typescript-projects-with-mocha-and-chai-in-typescript-86e053bdb2b6)。
  3. 実行するには、コマンド 'npm run-of-test-script'を実行すると、mochaは.jsファイルのみをフックします。
関連する問題