如何在游乐场使用测试包?

时间:2017-09-13 20:00:13

标签: testing go go-playground

go {playground>中提供了testing包。

如何使用go操场来演示测试概念,而无法访问go test

我的假设是可以使用testing.RunTests函数。我这样做的尝试总是只产生"测试:警告:没有测试运行"。

示例:https://play.golang.org/p/PvRCMdeXhX

对于上下文,我的用例是与同事分享测试,示例和基准的快速示例。我依靠go playground来共享这样的代码片段。

3 个答案:

答案 0 :(得分:7)

您需要使用testing.Main

func main() {
    testSuite := []testing.InternalTest{
        {
            Name: "TestCaseA",
            F:    TestCaseA,
        },
    }
    testing.Main(matchString, testSuite, nil, nil)
}

https://play.golang.org/p/DQsIGKNWwd

如果您想使用"非弃用",但不稳定的方式:

https://play.golang.org/p/4zH7DiDcAP

答案 1 :(得分:1)

Dave's answer 仍然可以手动调用测试,但如果您阅读“关于”测试,现在会自动支持:

<块引用>

如果程序包含测试或示例但没有主要功能,则服务运行测试。由于该程序在资源有限的沙盒环境中运行,因此可能不支持基准测试。

答案 2 :(得分:0)

游乐场有执行时间限制,我相信它们比工作台使用的最短执行时间少。从审核the source of the go test command开始,看起来当前正确的测试入口点是testing.MainStart,您可能会或可能没有运气。它在技术上是一种内部使用的API,不受兼容性指导,因此YMMV。