如何在 go playground 中使用测试包?
How do I use the testing package in go playground?
testing
包在 go playground 中可用。
如何在无法访问 go test
的情况下使用 go playground 来演示测试概念?
我的假设是可以使用 testing.RunTests 函数。我这样做的尝试总是只生成 "testing: warning: no tests to run"。
示例:https://play.golang.org/p/PvRCMdeXhX
就上下文而言,我的用例是与同事共享测试、示例和基准的快速示例。我经常依赖 go playground 来分享这样的代码片段。
您需要使用testing.Main
:
func main() {
testSuite := []testing.InternalTest{
{
Name: "TestCaseA",
F: TestCaseA,
},
}
testing.Main(matchString, testSuite, nil, nil)
}
https://play.golang.org/p/DQsIGKNWwd
如果想使用"non deprecated"但不稳定的方式:
playground 上有执行时间限制,我相信它们少于 bench 使用的最短执行时间。通过查看 the source of the go test
command, it looks like the current proper entry point for tests is testing.MainStart
,您可能会或可能不会使用它。它在技术上是内部使用 API,不受兼容性指南的约束,因此 YMMV。
仍然作为调用测试的手动方式工作,但如果您阅读“关于”测试,现在自动支持:
If the program contains tests or examples and no main function, the service runs the tests. Benchmarks will likely not be supported since the program runs in a sandboxed environment with limited resources.
testing
包在 go playground 中可用。
如何在无法访问 go test
的情况下使用 go playground 来演示测试概念?
我的假设是可以使用 testing.RunTests 函数。我这样做的尝试总是只生成 "testing: warning: no tests to run"。
示例:https://play.golang.org/p/PvRCMdeXhX
就上下文而言,我的用例是与同事共享测试、示例和基准的快速示例。我经常依赖 go playground 来分享这样的代码片段。
您需要使用testing.Main
:
func main() {
testSuite := []testing.InternalTest{
{
Name: "TestCaseA",
F: TestCaseA,
},
}
testing.Main(matchString, testSuite, nil, nil)
}
https://play.golang.org/p/DQsIGKNWwd
如果想使用"non deprecated"但不稳定的方式:
playground 上有执行时间限制,我相信它们少于 bench 使用的最短执行时间。通过查看 the source of the go test
command, it looks like the current proper entry point for tests is testing.MainStart
,您可能会或可能不会使用它。它在技术上是内部使用 API,不受兼容性指南的约束,因此 YMMV。
If the program contains tests or examples and no main function, the service runs the tests. Benchmarks will likely not be supported since the program runs in a sandboxed environment with limited resources.