如何设置 Ginkgo 测试套件?

我继承了一个 Go 项目,该项目由许多通用文件、一个库、两个可执行文件和理论上的测试套件组成。测试套件是在事后编写的。但我不喜欢我发现的唯一设置方式相当难吃

我正在使用 Ginkgo,这是我的起始目录结构

  • 组件 1/组件 1.go

  • 组件 2/组件 2.go

  • cmd1/cmd1.go

  • cmd2/cmd2.go

  • project_suite_test.go

  • component1_test.go

每个 cmd?.go 文件都会被编译成一个单独的可执行文件。

我想要的是一个多文件测试套件,通常每个组件一个文件。我应该将文件放在哪里,以便go test找到并运行所有文件,而不会将它们留在项目的根目录中?


倚天杖
浏览 238回答 3
3回答

饮歌长啸

您可以go test ./...在根目录中使用,它将进入子文件夹并执行测试:component1/component1.gocomponent1/component1_test.gocomponent2/component2.gocomponent2/component2_test.gocmd1/cmd1.gocmd1/cmd1_test.gocmd2/cmd2.gocmd2/cmd2_test.go

慕标琳琳

ginkgo init并且ginkgo bootstrap将建立你的测试。ginkgo -r将递归运行所有测试。

HUX布斯

原因: Ginkgo 命令仅在您实际通过 ginkgo 引导您的项目时才有效。选项: 要使用它,您必须在终端中转到您的测试目录并运行ginkgo init :初始化项目:ginkgo bootstrap :这将生成带有测试套件配置的新文件ginkgo或者ginkgo test:现在可以根据新生成的文件运行测试,因为这就是它要搜索的内容。或者:如果您想将测试保存在子文件夹中,请说 test,然后运行go test ./...将尝试在每个文件夹中运行测试,即使是那些不包含任何测试的文件夹,因此有一个 ? 在非测试文件夹的后续报告中。跑步go test ./.../test相反,它将仅针对您的测试文件夹,因此只有专注于您的测试文件夹的干净报告。您也可以使用'go run $(ls *.go)'来运行给定文件夹中的所有文件。请注意, () 括号内有正则表达式。如果您想根据正则表达式中所需的目录在不同的路径更新路径中运行测试
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go