2015-09-04 414 views
0

My Go应用程序(restfull api服务)不断增长,我决定使用测试。我的选择是银杏/戈麦加。使用ginkgo/gomega进行测试的测试文件的正确结构Go app

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

  1. 转到包
  2. 银杏引导

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

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

因此,在一段时间内,我们将有许多杂乱的:我们的应用程序文件和测试文件一起在一个文件夹中。例如 server.go,server_test.go,auth.go,auth_test.go等。

我想让应用程序文件和测试文件海量化。例如,我想在根包中创建一个文件夹测试,并将所有测试放在这里。 所以,当我需要测试的应用程序,我可以跑去测试./tests

它是正确的模式,使用单独的测试文件夹银杏/戈梅加?

谢谢。

+0

GO测试框架是不必要的。这听起来像你从来没有写过Go测试,你是否尝试过阅读['testing'软件包文档](https://golang.org/pkg/testing)并编写普通的旧的'惯用Go测试?我会从那里开始,如果/当你发现缺乏简单的Go和'testing'的东西时,只考虑别的东西。 –

回答

0

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

$ go test ./... 

在我的围棋项目,我通常有一个单独的bash脚本,会为我做到这一点。你可以可以用下面的内容放置,例如,在bin/run_tests.sh

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

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

$ ./bin/run_tests.sh 

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