sno*_*uis 3 testing compilation go
我想知道如果使用编译二进制文件,什么代码将被编译成go二进制文件go build ./...。这将编译具有cli程序的二进制文件。对于此cli程序,我有测试代码和非测试代码。我目前有几种测试代码:
foo_test.go 包装内 foo_testfoo_internal_test.go 包装内 footestutil.gotestutil提供测试实用程序功能的软件包中非测试代码中实际上没有引用任何测试代码。testutil函数仅导入测试文件中。
如果测试代码实际上已编译为二进制文件,那么这有多少问题?
小智 7
我相信,如果您在一个无法访问的文件中有一个 init() 函数,它仍然会链接到可执行文件中。
_test.go 文件仍将被排除。
当我们有一些不在 _test 文件中的测试帮助程序代码时,这让我们感到困扰。其中一个有一个 init() 函数,它在可执行文件启动时运行。
go二进制文件仅包含从其main()入口点可访问的代码。对于测试二进制文件,main()是测试运行程序。
至于“问题有多严重”,是否包含在内……没有。它会稍微增加二进制文件的大小和编译时间,但不会产生影响-根据定义,未执行的代码无效。
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |