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

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

測試時“無法在 Go Routine 中啟動 NATS Server”

測試時“無法在 Go Routine 中啟動 NATS Server”

Go
犯罪嫌疑人X 2023-07-10 17:26:11
我正在嘗試分開測試以使用不同的 NATS 服務(wù)器。(我還不確定它是 NATS,但我的測試會相互影響。)在運行單個測試或測試單個包時,這樣做效果很好。go test ./...在我的所有包上運行(如 CI 中所做的那樣)我收到此錯誤(路徑匿名):panic: Unable to start NATS Server in Go Routinegoroutine 1 [running]:github.com/nats-io/gnatsd/test.RunServer(0xc000163400, 0xc000163400)    ./go/pkg/mod/github.com/nats-io/gnatsd@v1.4.1/test/test.go:66 +0xbd./lib/msgQueue/nats.NewTestConn(0xc0002adf68, 0x1879e12)    ./lib/msgQueue/nats/testconn.go:19 +0x80看起來 Go 啟動 goroutine 來在其中運行測試。在測試中使用TestMain和都init不能解決問題。是否可以在每次測試時啟動服務(wù)器而不會遇到錯誤goroutine?或者是否有一些輕量級但功能齊全的內(nèi)存替代品?
查看完整描述

4 回答

?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

我懷疑錯誤信息:


Unable to start NATS Server in Go Routine

具有誤導(dǎo)性。關(guān)于 Go 例程的部分可能只是它如何嘗試啟動 NATS 服務(wù)器的實現(xiàn)細節(jié)。我懷疑服務(wù)器無法啟動,因為您在選項中對端口進行了硬編碼,并且因為多個測試包可能正在并行運行。只有一個測試包能夠綁定到端口來啟動 NATS 服務(wù)器,所有其他測試包都將失敗。


標志上的文檔go test說:


-parallel n

    Allow parallel execution of test functions that call t.Parallel.

    The value of this flag is the maximum number of tests to run

    simultaneously; by default, it is set to the value of GOMAXPROCS.

    Note that -parallel only applies within a single test binary.

    The 'go test' command may run tests for different packages

    in parallel as well, according to the setting of the -p flag

    (see 'go help build').

除非您在給定的測試套件中有并行測試(我假設(shè)您沒有),否則問題可能是并行運行的不同包。按照上面末尾的線索,讓我們看看構(gòu)建標志:


-p n

    the number of programs, such as build commands or

    test binaries, that can be run in parallel.

    The default is the number of CPUs available.

這是來自“編譯包和依賴項”文檔。請注意,您可以將構(gòu)建標志和測試標志傳遞給go test:


$ go test -h

usage: go test [build/test flags] [packages] [build/test flags & test binary flags]

Run 'go help test' for details.

所以考慮跑步go test -p 1 ./...?;蛘?,將選項傳遞給RunServer函數(shù),允許多個選項安全地并行發(fā)生。


查看完整回答
反對 回復(fù) 2023-07-10
?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

每次測試它可能已經(jīng)啟動了一個服務(wù)器。沒有 goroutine 就無法同時運行。這個錯誤實際上沒有任何意義 - Go 中的任何東西都必須能夠在 goroutine 中運行,事實上一切都goroutine 中運行(甚至main),所以不清楚他們在這里真正想說的是什么(我會絕對建議打開有關(guān)它的錯誤報告,因為該錯誤消息很糟糕)。同時,您可以避免go test同時運行-parallel 1(如 中所示go help testflag),這可能會有所幫助。



查看完整回答
反對 回復(fù) 2023-07-10
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

就我而言,問題是我已經(jīng)運行了一個 nats-server 實例,因此測試失敗。通過停止服務(wù)器,測試成功通過。



查看完整回答
反對 回復(fù) 2023-07-10
?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

我的解決方案是在命令GODEBUG=x509sha1=1之前添加go test

PS go1.18.3


查看完整回答
反對 回復(fù) 2023-07-10
  • 4 回答
  • 0 關(guān)注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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