go test 测试单个文件报错问题
golang 在进行整个项目测试的时候没有问题,但是在测试单个文件的时候经常会报错,报错一些函数undefined
build failed
,构建失败,我们应该就能看出一下信息。go test与其他的指定源码文件进行编译或运行的命令程序一样(参考:go run
和go build
),会为指定的源码文件生成一个虚拟代码包——“command-line-arguments”,对于运行这次测试的命令程序来说,测试源码文件getinfo_test.go
是属于代码包“command-line-arguments”的,可是它引用了其他包中的数据并不属于代码包“command-line-arguments”,编译不通过,错误自然发生了。
那么在编译的时候把需要引用的文件都放到-v 作为参数,那么就可以测试通过了(如果引入了a文件,a文件又引用了b文件,那么b也要加在参数里)
go test -v add_test.go add.go