繁体   English   中英

随时进行单一测试

[英]Build single test in go

我的项目中有两个测试,我想构建一个测试,将生成的二进制文件放入容器中,运行它,然后附加一个调试器。

这可能吗?

package dataplatform

import "testing"

func TestA(t *testing.T) {

    // test A
}

func TestRunCommand(t *testing.T) {

    // Test B
}

您可以使用-run <regexp>来限制(过滤)要运行的测试。 因此,例如,如果您只想运行TestA()测试,则可以这样进行:

go test -run TestA

实际上,上面的代码将运行所有名称包含TestA测试,因此,明确地说,它将是:

go test -run ^TestA$

要不运行测试而是生成测试二进制文件,可以使用-c选项:

go test -c

这不会运行测试,但是会编译一个二进制文件,执行该二进制文件将运行测试。

问题是您不能结合使用这些选项,例如运行

go test -c -run TestA

将生成一个二进制文件,该二进制文件在执行时将运行所有测试。

事实是,所生成的二进制文件接受与go test相同的参数,因此您可以将-run TestA传递给所生成的二进制文件,但必须在test参数前加上test

这些标志中的每一个也可以通过可选的“测试”来识别。 前缀,如-test.v中所示。 但是,当直接调用生成的测试二进制文件(“ go test -c”的结果)时,前缀是必需的。

因此,如果生成的测试二进制文件的名称是my.test ,请像这样运行它:

./my.test -test.run TestA

有关更多选项和文档,请运行go help test或访问官方文档:

命令去

和相关部分:

Command Go:测试标志

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM