使用ginkgo / gomega测试Go app时测试文件的正确结构

时间:2015-09-04 10:55:45

标签: testing go bdd ginkgo

我的Go应用程序(restfull api服务)正在增长,我决定使用测试。我的选择是Ginkgo / Gomega。

学习网站(http://onsi.github.io/ginkgo/#getting-started-writing-your-first-test)我发现要开始测试你需要

  1. 转到包
  2. ginkgo bootstrap
  3. 这将在包文件夹的根目录中创建文件[your_package] _suite_test。 没关系。

    但是如果我想测试一些我需要的功能或文件或包 转到文件夹和ginkgo生成[test_name],它将在这里创建存根测试文件。

    所以,在一瞬间,我们会有很多杂乱:我们的应用程序文件和测试文件放在一个文件夹中。 例如, server.go,server_test.go,auth.go,auth_test.go等。

    我想海量应用文件和测试文件。例如,我想在root包中创建一个文件夹测试,并在此处放置所有测试。 所以,当我需要测试app时,我可以运行go test ./tests

    将Ginkgo / Gomega与单独的测试文件夹一起使用是正确的模式吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

在Go中,无论测试文件位于何处,您都可以使用单个命令运行给定项目的所有测试。在终端中,切换到项目基目录并运行:

$ go test ./...

在我的Go项目中,我通常会有一个单独的Bash脚本,它将为我执行此操作。例如,您可以将其放在bin/run_tests.sh中,其中包含以下内容:

#!/bin/bash -e
time go test ./... | grep -v '^?'

使此文件可执行,然后运行它:

$ ./bin/run_tests.sh

我没有单独的test文件夹。从大多数Go项目来看,我看到开发人员的目的是将测试文件放在被测文件所在的同一目录中。