2015-09-04 90 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項目,我看到開發人員的目標是將測試文件放在被測文件所在的同一目錄中。