我继承了一个 Go 项目,该项目由许多通用文件、一个库、两个可执行文件和理论上的测试套件组成。测试套件是在事后编写的。但我不喜欢我发现的唯一设置方式相当难吃我正在使用 Ginkgo,这是我的起始目录结构组件 1/组件 1.go组件 2/组件 2.gocmd1/cmd1.gocmd2/cmd2.goproject_suite_test.gocomponent1_test.go每个 cmd?.go 文件都会被编译成一个单独的可执行文件。我想要的是一个多文件测试套件,通常每个组件一个文件。我应该将文件放在哪里,以便go test找到并运行所有文件,而不会将它们留在项目的根目录中?
3 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
您可以go test ./...在根目录中使用,它将进入子文件夹并执行测试:
component1/component1.go
component1/component1_test.go
component2/component2.go
component2/component2_test.go
cmd1/cmd1.go
cmd1/cmd1_test.go
cmd2/cmd2.go
cmd2/cmd2_test.go
HUX布斯
TA贡献1876条经验 获得超6个赞
原因: Ginkgo 命令仅在您实际通过 ginkgo 引导您的项目时才有效。
选项: 要使用它,您必须在终端中转到您的测试目录并运行
ginkgo init
:初始化项目:
ginkgo bootstrap
:这将生成带有测试套件配置的新文件
ginkgo
或者ginkgo test
:现在可以根据新生成的文件运行测试,因为这就是它要搜索的内容。
或者:
如果您想将测试保存在子文件夹中,请说 test,然后运行
go test ./...
将尝试在每个文件夹中运行测试,即使是那些不包含任何测试的文件夹,因此有一个 ? 在非测试文件夹的后续报告中。
跑步
go test ./.../test
相反,它将仅针对您的测试文件夹,因此只有专注于您的测试文件夹的干净报告。
您也可以使用'go run $(ls *.go)'
来运行给定文件夹中的所有文件。请注意, () 括号内有正则表达式。
如果您想根据正则表达式中所需的目录在不同的路径更新路径中运行测试
- 3 回答
- 0 关注
- 237 浏览
添加回答
举报
0/150
提交
取消