4 回答

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
go test
在 Go 1.10 及更高版本中,會(huì)在包級(jí)別自動(dòng)執(zhí)行此操作;任何沒有更改的包將返回緩存的測(cè)試結(jié)果,而有更改的包將被重新測(cè)試。
如果單個(gè)包的測(cè)試仍然花費(fèi)太長(zhǎng)時(shí)間,則表明您的測(cè)試存在問題;Go 中的良好測(cè)試通常執(zhí)行得非???,這意味著您可能需要檢查測(cè)試本身,并執(zhí)行以下操作的組合:
使用構(gòu)建標(biāo)簽隔離集成測(cè)試。訪問外部資源的測(cè)試往往會(huì)比較慢,因此將它們?cè)O(shè)置為可選將有助于加快您只需要單元測(cè)試結(jié)果的運(yùn)行速度。
利用簡(jiǎn)短的測(cè)試,以便您可以選擇更頻繁地進(jìn)行快速通過。
檢查您的單元測(cè)試 - 您是否有不必要的測(cè)試或測(cè)試用例?您的測(cè)試是否過于復(fù)雜?您是否正在閱讀可以保存為常量的黃金文件?當(dāng)您可以通過編程方式創(chuàng)建對(duì)象時(shí),是否將靜態(tài) JSON 反序列化為對(duì)象?
優(yōu)化您的單元測(cè)試。測(cè)試仍然是代碼,性能不佳的代碼可以進(jìn)行性能優(yōu)化。在單元測(cè)試中有很多情況下,我們很樂意選擇便利而不是性能,但如果性能是一個(gè)問題,則必須重新考慮該選擇。
檢查您的測(cè)試執(zhí)行 - 您是否使用了不可緩存的參數(shù)來
go test
阻止其緩存結(jié)果?您是否出于習(xí)慣而在不必要的情況下使用競(jìng)爭(zhēng)檢測(cè)器、分析器或代碼覆蓋率報(bào)告?

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
不,Go 中沒有辦法做到這一點(diǎn)。您所能做的就是將代碼拆分為多個(gè)包并一次測(cè)試一個(gè)包
go test some/thing
而不是他們?nèi)?/p>
go test ./...

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
他們的 README.md 中的示例是
export CMDLINE="go test"
export PKGS="./..." # IMPORTANT make sure packages are written SEPERATLY
nabaz test --cmdline $CMDLINE --pkgs $PKGS .

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以使用make. 如果測(cè)試文件沒有更改,它不會(huì)再次重新運(yùn)行測(cè)試。
make: `test' is up to date.
這就是您可以編寫Makefile 的方法。
# To run commands just use "make" and make function name
# ex- <make run> use for run go run main.go
# Go parameters
execution: echo "** Executing Makefile**"
GOCMD=go
GOINSTALL=$(GOCMD) install
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOTEST=$(GOCMD) test
GOGET=$(GOCMD) get
GORUN=$(GOCMD) run
BINARY_NAME=reservations
BINARY_UNIX=$(BINARY_NAME)_unix
execute:
- echo "Running the build - reservations"
- ~/go/bin/reservations-backend
install:
- echo "Building the module"
# will create a executable file at $GOPATH
- $(GOINSTALL)
run:
- @echo "Running the application - reservations"
- $(GORUN) $(BINARY_NAME)
#NOTE: @ before a command will stop showing that command.
test:
- @echo "** Running Tests **"
- $(GOTEST) -race ./test -v
- 4 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)