gpt4 book ai didi

testing - 如何运行没有输出注释的 Go 示例?

转载 作者:IT王子 更新时间:2023-10-29 01:39:25 28 4
gpt4 key购买 nike

可测试的 Go 示例看起来很棒。

func ExampleReverse() {
fmt.Println(stringutil.Reverse("hello"))
// Output: olleh
}

例如,以上等同于断言的单元测试:

stringutil.Reverse("hello") == "olleh"

根据 the golang blog ,我们可以编写没有输出注释的示例,但是 go testgo test -run ExampleReverse 命令仅编译示例并且不要运行它:

If we remove the output comment entirely then the example function is compiled but not executed. Examples without output comments are useful for demonstrating code that cannot run as unit tests, such as that which accesses the network, while guaranteeing the example at least compiles.

此类示例的输出虽然不可测试,但对于用户生成和阅读仍然有用。以及示例本身 - 对于在他们的计算机上运行非常有用。

那么有没有一种方法或工具可以从终端运行 *_test.go 文件中的示例函数?

最佳答案

您可以从常规 Test* 函数调用 Example* 函数。

func ExampleOutput() {
fmt.Println("HEELLO")
}

func TestExampleOutput(t *testing.T) {
if !testing.Verbose() {
return
}
ExampleOutput()
}

这个例子的主体会出现在文档的 Output 下,如果你不想每次都输出,它仅限于使用 -v< 调用它 标志。


具体来说,要仅运行您感兴趣的示例,您可以:

go test path/to/pkg -run TestExampleOutput -v

或者编译一次运行多次:

go test path/to/pkg -c
./pkg.test -test.run TestExampleOutput -test.v

关于testing - 如何运行没有输出注释的 Go 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33354043/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com