- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 Flask API,其中一个端点是接收消息并将其发布到 PubSub。目前,为了测试该端点,我必须从命令行手动启动 PubSub 模拟器,并在测试期间保持其运行。它工作得很好,但对于自动化测试来说并不理想。
我想知道是否有人知道如何从 python 启动测试 PubSub 模拟器?或者是否有人有更好的解决方案来测试此类 API?
最佳答案
据我所知,没有可用的 Python 原生 Google Cloud PubSub 模拟器。
您的选择很少,所有这些都需要从 Python 启动外部程序:
只需调用您提到的 gcloud 命令:gcloud beta emulators pubsub start [options]
直接从您的 Python 应用程序将其作为外部程序启动。
作为 Cloud SDK 一部分提供的 PubSub 模拟器是一个 JAR 文件,由 CLOUD_SDK_INSTALL_DIR/platform/pubsub-emulator/bin/cloud-pubsub-emulator
中的 bash 脚本引导。您可以直接运行此 bash 脚本。
这是一个StackOverflow answer which covers multiple ways to launch an external program from Python .
此外,从您的问题中还不清楚如何在 Python 中调用 PubSub API。
对于单元测试,您可以考虑在实际调用 Cloud PubSub API 的代码上设置一个包装器,并为此 API 包装器注入(inject)一个假的。这样,您就可以测试仅调用假 API 包装器而不是真正的 API 包装器的其余代码,而不必担心启动任何外部程序。
对于集成测试,PubSub 模拟器肯定会很有用。
关于python - 如何从 python 启动测试 pubsub 模拟器以进行自动化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44708430/
我是一名优秀的程序员,十分优秀!