当使用ginkgo/gomega测试Go应用程序时,正确的测试文件结构



我的Go应用程序(restful api服务)正在增长,我决定使用测试。我的选择是银杏。

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

  1. 转到
  2. 银杏引导

这将在包文件夹的根目录下创建文件[your_package]_suite_test。没关系。

但如果我想测试一些功能或文件或包我需要再次进入文件夹并生成[test_name],这将在这里创建存根测试文件。

所以,在某一时刻,我们将有许多混乱的文件:我们的应用程序和测试文件一起在一个文件夹。例如,服务器。去,server_test。去,身份验证。去,auth_test。Go,等等。

我想搜索应用程序文件和测试文件。例如,我想在根包中创建一个文件夹tests,并将所有测试放在这里。所以,当我需要测试应用程序时,我可以运行go test ./tests

使用Ginkgo/Gomega与单独的测试文件夹是否正确?

谢谢。

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

$ go test ./...

在我的Go项目中,我通常有一个单独的Bash脚本来为我做这件事。例如,您可以将其放置在bin/run_tests.sh中,并具有以下内容:

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

让这个文件可执行,然后运行它:

$ ./bin/run_tests.sh

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

最新更新