假设我们有一个项目使用一些仅用于测试的第三方模块(或库,如果你愿意)(即。github.com/stretchr/testify)。所以我们最终会得到go.mod这样的文件:module example.org/myappgo 1.13require ( ... github.com/go-resty/resty/v2 v2.2.0 github.com/gorilla/mux v1.7.4 github.com/stretchr/testify v1.3.0 ...)正如我所看到的,用于生产代码的模块和仅用于测试的 testify 之间没有区别(即不像在 Java 中我们有依赖范围test等compile)所以 golang 编译器如何知道不需要哪个依赖对于运行时并且可以在编译的二进制文件中省略?
1 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
它不仅包括您的所有内容go.mod
;编译器会忽略当时正在构建的内容中未引用的任何内容。默认情况下,正确的测试文件被命名*_test.go
并被非测试构建的构建约束排除。仅从这些文件中引用的任何内容都只会编译到测试版本中。
- 1 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消