2017-06-22 5 views
1

私は、メッセージを受信して​​PubSubに公開するためのエンドポイントの1つであるフラスコAPIを開発中です。現在、そのエンドポイントをテストするために、PubSubエミュレータを手動でコマンドラインからスピンアップし、テスト中に実行しておく必要があります。それは正常に動作しますが、自動テストには理想的ではありません。自動テストのためにpythonからテストpubsubエミュレータを起動する方法

誰かがPythonからテストPubSubエミュレータをスピンアップする方法を知っているのだろうか?または、誰かがそのようなAPIをテストするためのより良いソリューションを持っていれば?

答えて

0

私が知る限り、PythonネイティブのGoogle Cloud PubSubエミュレータはありません。

あなたはいくつかのオプションがあり、それらのすべては、Pythonから外部プログラムを起動する必要が:外部プログラムとして、これを起動するPythonアプリケーションから直接gcloud beta emulators pubsub start [options]

  • をちょうどあなたが言及したのgcloudコマンドを起動します。

  • Cloud SDKの一部として提供されるPubSubエミュレータは、CLOUD_SDK_INSTALL_DIR/platform/pubsub-emulator/bin/cloud-pubsub-emulatorにあるbashスクリプトによってブートストラップされたJARファイルです。このbashスクリプトを直接実行することもできます。

ここにはStackOverflow answer which covers multiple ways to launch an external program from Pythonがあります。

また、PythonでPubSub APIをどのように呼び出しているかは、あなたの質問からはっきりと分かりません。

  • は、ユニットテストのために、あなたが実際にクラウドPubSubのAPIを呼び出すコードの上にラッパーの設定を検討可能性があり、このAPIラッパーの偽物を注入します。こうすることで、実際のAPIラッパーではなく偽のAPIラッパーを呼び出すコードの残りの部分をテストし、外部プログラムの起動を心配する必要がなくなります。

  • 統合テストの場合、PubSubエミュレータは間違いなく便利です。

関連する問題