第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何打包 golang 測試助手代碼?

如何打包 golang 測試助手代碼?

Go
MM們 2023-06-19 17:37:24
我的 golang 庫中有一些測試助手代碼,我想在各種子包中進(jìn)行測試時使用這些代碼。但是,我遇到了一個障礙:outer|+- test_helpers_test.go|+- inner   |   +- something.go   +- something_test.go要使用中的代碼test_helpers_test.go,我必須導(dǎo)入外包。但是當(dāng)我從中導(dǎo)入外包時something_test.go,它會抱怨“測試中不允許導(dǎo)入周期”所以我嘗試為共享測試助手制作一個包:outer|+- test|  ||  +- test_helpers_test.go|+- inner   |   +- something.go   +- something_test.go現(xiàn)在它抱怨“/home/karl/Projects/outer/test 中沒有非測試 Go 文件”我不想調(diào)用它,test_helpers.go因?yàn)樗俏业臏y試代碼的一部分,而不是我的庫代碼。我不想在庫中發(fā)布該代碼。我該如何解決這個問題?更新:我可以通過dummy.go在目錄中創(chuàng)建一個文件來解決這個問題test,但現(xiàn)在有一個新問題:導(dǎo)入一個包不會導(dǎo)入它的測試代碼!所以現(xiàn)在我得到:./something_test.go:12:2: undefined: test.AssertDoesPanic
查看完整描述

2 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個贊

你是對的,你不能從另一個包導(dǎo)入測試代碼,所以你的輔助函數(shù)必須進(jìn)入正確的代碼文件而不是測試文件。

如果它不是從您的非測試代碼中導(dǎo)入的,那么它就不會被構(gòu)建到最終的二進(jìn)制文件中。

作者傾向于調(diào)用該包...test來表明它只是測試助手,例如httptest來自標(biāo)準(zhǔn)庫或zaptest來自開源。

查看完整回答
反對 回復(fù) 2023-06-19
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個贊

在go issue 8279之后,我看到添加了虛擬文件,如tommie/acme-cli提交 479f8c7

outer/outer.go
//?+build?ignore+
package?outer

作為一種解決方法,看看這是否對這里有幫助。


如上所述,在內(nèi)部包(來自 Go 1.4+)中使用測試助手代碼是另一種選擇,因?yàn)樵擁?xiàng)目的任何客戶端都無法訪問該助手。見設(shè)計(jì)文件。您可以在典型的 Go 項(xiàng)目布局
中看到它的使用。


查看完整回答
反對 回復(fù) 2023-06-19
  • 2 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號