作者回复: 我不太清楚你说的“默认测试时间”是指什么。
如果是性能测试的话,可以在执行 go test 命令时追加 -benchtime 标记。这实际上是下一篇文章的思考题。
另外,-timeout 标记可用于设定当次测试运行的总时长,一旦超过这个时长就panic。
具体用法可以参考:https://golang.org/cmd/go/#hdr-Testing_flags 。
作者回复: 这个专栏是完全重写的,几乎跟书上的东西没有重叠。答案的话我赶完稿子后面再补吧。现在补精力跟不上。
作者回复: 初学的时候最好用命令行运行。
两种解决方案:
1. 在当前代码包下运行 go test 命令。这样可以执行当前代码包下的所有功能测试函数。
2. 在当前代码包下运行 go test demo52_test.go demo52.go 命令。这样只会执行 demo52_test.go 文件中的功能测试函数。
作者回复: 肯定是都能跑的。这个参数主要是为了模拟多核CPU执行程序。这样可以测试并发程序在各种计算环境中的执行情况,包括功能正确性和性能。
作者回复: 我的测试结果如下:
q2 git:(master) ✗ go test puzzlers/article20/q2
ok puzzlers/article20/q2 1.369s
➜ q2 git:(master) ✗ go test puzzlers/article20/q2
ok puzzlers/article20/q2 (cached)
➜ q2 git:(master) ✗ go test puzzlers/article20/q2
ok puzzlers/article20/q2 (cached)
作者回复: 文章里写了:
当某次执行的时间大于或等于上限时,我们就说这是命令此次对该测试函数的最后一次执行。这时的b.N的值就会被包含在测试结果中,也就是上述测试结果中的500000。
极客时间版权所有: https://time.geekbang.org/column/article/41189
作者回复: 不能,即使能也不应该这么做啊。
作者回复: 跳过测试函数的话,你可以看一下 -run 这个标记。如果要跳过某个包不指定那个包不就得了。