Golang】解决Go test执行单个测试文件提示未定义问题

        在github布置action 运行go test clearing_test.go脚本报未定义错误,但是本地在goland编辑器直接点击run没有报错。一时半会没找到问题。

        想到本地运行一下go test clearing_test.go,竟然报了一样的未定义错误,问题很明显,因为调用的函数不在一个包内,所以找不到。

原因:

        go test与其他的指定源码文件进行编译或运行的命令程序一样(参考:go rungo build),会为指定的源码文件生成一个虚拟代码包——“command-line-arguments”,对于运行这次测试的命令程序来说,测试源码文件clearing_test.go是属于代码包“command-line-arguments”的,可是它引用了其他包中的数据并不属于代码包“command-line-arguments”,编译不通过,错误自然发生了。

解决办法

知道了原因之后,解决的方法就出来了,执行命令时加入这个测试文件需要引用的源码文件在命令行后方的文件都会被加载到command-line-arguments中进行编译。。示例如下:


发表评论 / Comment

用心评论~