簡體   English   中英

從 CLI 運行時,Go 中的 Monkey Patching 顯示不同的結果

[英]Monkey Patching in Go show different result when running from CLI

我在 Go 中使用 Monkey Patching。 當我在 VSCode 中調試以下代碼時,它顯示函數 proc.Signal 返回編程的錯誤。

func TestCheckProcessRunning(t *testing.T) {
    monkey.Patch((*os.Process).Signal, func(p *os.Process, sig os.Signal) error {
        return errors.New("Signal failed")
    })
    proc := &os.Process{}
    sig_e := proc.Signal(syscall.Signal(0))
    fmt.Printf("%s\n", sig_e)

}
Signal failed

但是當我嘗試使用go test 運行測試時。 ,補丁不再應用並得到不同的錯誤:

os: process not initialized 

知道我做錯了什么嗎?

似乎它需要標志 -gcflags=-l

go test -gcflags=-l .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM