[英]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.