使用 Go 和 Appengine 时,必须实现测试用例以确保代码功能。然而,由于访问 appengine 上下文的限制,使用标准 Go 测试包运行测试可能具有挑战性。
正如您所提到的,使用“go test hello.”将不会执行测试用例成功。问题在于无法从测试文件“http_test.go”调用“http.go”文件。
要解决此问题,您可以使用“ github.com/mzimmerman/appenginetesting”包。此第三方库提供了一个模拟 appengine.Context,允许您针对模拟的 Appengine 环境运行测试。
要安装 appenginetesting,请按照以下步骤操作:
要在测试中使用 appenginetesting,请导入包并创建一个模拟 appengine.Context:
import "github.com/mzimmerman/appenginetesting" ... c := appenginetesting.NewContext(nil)
然后您可以在测试代码中使用“c”上下文,类似于使用实际的 appengine.Context。但是,使用“defer c.Close()”手动关闭上下文以避免让 Python 进程持续运行至关重要。
要避免从 appengine 直接导入,请考虑创建一个自定义包,该包提供基于构建环境的上下文。使用构建标志,您可以选择为 Appengine 或测试环境加载哪个上下文实现。这种方法允许您维护访问上下文的一致接口,无论运行时如何。
以上是如何在App Engine环境中有效运行Go测试用例?的详细内容。更多信息请关注PHP中文网其他相关文章!