从VS代码到终端测试不可重复的输出

时间:2018-08-09 11:27:05

标签: go visual-studio-code

在VScode中具有go扩展名,对方法进行基准测试只需单击[run benchmark],然后立即在vscode控制台中将其输出,然后是运行的命令和输出:

Running tool: /usr/local/bin/go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkRandomStringGeneration2$

goos: darwin
goarch: amd64
pkg: github.com/zyxan/benchmarks
BenchmarkRandomStringGeneration2-4      10000000           147 ns/op          80 B/op          3 allocs/op
PASS
ok      github.com/zyxan/benchmarks 1.654s
Success: Benchmarks passed.

现在,如果我想在终端上重现这样的命令,我只是复制它

/usr/local/bin/go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkRandomStringGeneration2$

将其粘贴到我的终端会话中会导致以下输出:

❯ /usr/local/bin/go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkRandomStringGeneration2$
zsh: no matches found: -run=^$

为什么会导致差异?

1 个答案:

答案 0 :(得分:0)

如果您使用的是vs-code,则可以使用same提供的vs-code终端来运行命令,它将使用同一命令显示基准测试的输出。它将解析命令。

go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkParsingJSON$

在Windows上安装的vs-code终端中使用上述命令。

正如@Peter在Linux终端上建议的那样,您应该使用单个反逗号来解析shell命令

go test -benchmem -run='^$' github.com/zyxan/benchmarks -bench '^BenchmarkRandomStringGeneration2$'

-run标记内,您需要传递正则表达式标记。