2017-06-22 4 views
1

Ich arbeite an einer Kolben-API, die eine der Endpunkte ist, um eine Nachricht zu erhalten und in PubSub zu veröffentlichen. Um diesen Endpunkt zu testen, muss ich einen PubSub-Emulator manuell von der Befehlszeile aus hochfahren und während des Tests weiterlaufen lassen. Es funktioniert gut, aber es wäre nicht ideal für automatisierte Tests.So starten Sie einen Test Pubsub-Emulator von Python für den automatisierten Test

Ich frage mich, ob jemand einen Weg weiß, um einen Test PubSub-Emulator von Python Spin-up? Oder wenn jemand eine bessere Lösung zum Testen einer solchen API hat?

Antwort

0

Soweit ich weiß, gibt es keinen pythoneigenen Google Cloud PubSub Emulator.

Sie haben einige Optionen, die alle von ihnen benötigen ein externes Programm aus Python starten:

  • rufen Sie einfach den Befehl gcloud Sie erwähnt: gcloud beta emulators pubsub start [options] direkt von Ihrem Python-Anwendung diese als externes Programm zu starten.

  • Der PubSub-Emulator, der als Teil von Cloud SDK geliefert wird, ist eine JAR-Datei, die vom Bash-Skript in CLOUD_SDK_INSTALL_DIR/platform/pubsub-emulator/bin/cloud-pubsub-emulator geladen wird. Sie könnten dieses Bash-Skript möglicherweise direkt ausführen.

Hier ist ein StackOverflow answer which covers multiple ways to launch an external program from Python.

Auch ist es nicht ganz klar aus Ihrer Frage, wie Sie die PubSub-APIs in Python aufrufen.

  • Für Unit-Tests, könnten Sie einen Wrapper über den Code der Einrichtung prüfen, um den Cloud-APIs PubSub tatsächlich aufruft, und eine Fälschung für diesen API-Wrapper injizieren. Auf diese Weise können Sie den Rest des Codes testen, der nur Ihren falschen API-Wrapper anstelle des echten API-Wrappers aufruft, und sich keine Sorgen darüber machen, irgendwelche externen Programme zu starten.

  • Für Integrationstests wird der PubSub-Emulator definitiv nützlich sein.

Verwandte Themen