【问题标题】:How do I set up a Ginkgo test suite?如何设置 Ginkgo 测试套件?
【发布时间】:2021-05-14 20:29:57
【问题描述】:

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

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

  • component1/component1.go
  • component2/component2.go
  • cmd1/cmd1.go
  • cmd2/cmd2.go
  • project_suite_test.go
  • component1_test.go

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

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

【问题讨论】:

    标签: go ginkgo


    【解决方案1】:

    ginkgo initginkgo bootstrap 将设置您的测试。 ginkgo -r 将递归运行所有测试。

    【讨论】:

      【解决方案2】:

      原因: 只有当您通过 ginkgo 实际引导您的项目时,Ginkgo 命令才会起作用。

      选项: 要使用它,您必须转到终端中的测试目录并运行

      ginkgo init:初始化项目:

      ginkgo bootstrap : 这将生成带有测试套件配置的新文件

      ginkgoginkgo test :这将能够基于您新生成的文件运行测试,因为这就是它试图搜索的内容。

      或者:

      如果您想将测试保存在子文件夹中,例如 test,然后运行

      go test ./...
      

      将尝试在每个文件夹中运行测试,即使是那些不包含任何测试的文件夹,因此会有 ?在非测试文件夹的后续报告中。

      跑步

      go test ./.../test
      

      而是只针对您的测试文件夹,因此有一个干净的报告只关注您的测试文件夹。

      您也可以使用'go run $(ls *.go)' 来运行给定文件夹中的所有文件。 请注意,您在 () 大括号中有正则表达式。

      如果您想根据正则表达式中所需的目录在不同的路径更新路径中运行测试

      【讨论】:

        【解决方案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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-08
          • 2021-05-12
          • 2023-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多