我有一个并发执行的函数。它的任务是运行一个命令行方法,如果有错误就记录一个错误。我的主执行线程不等待此方法完成。它只是乐观地返回。
如何测试我的功能?假设我给它一个cmdStr,例如{"sleep", "1"},它可以工作但不会立即返回,我怎样才能让我的测试等待这个函数完成?
我想确保运行此实际的程序并没有必须等待它完成。
func runCmd(cmdStr []string, errChan chan error) {
cmd := exec.Command(cmdStr...)
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Start()
if err != nil {
errChan <- err
return
}
// Command started successfully, so our caller can continue.
errChan <- nil
err = cmd.Wait()
if err != nil {
log.Println(err)
}
}
ibeautiful
慕运维8079593
相关分类