猿问

特定操作系统或架构的测试文件

在 Go 中,文件名具有语义含义。例如:


*_windows.go // Only include in compilations for Windows

*_unix.go    // Only include in compilations for Unix

*_386.go     // Only include in compilations for 386 systems

*_test.go    // Only include when run with `go test`

但是,我似乎无法使以下内容起作用:


*_windows_test.go // Only include when running `go test` on windows

*_test_windows.go // Another attempt

这甚至可以用 Go 实现吗?如果是这样,如何?


慕码人8056858
浏览 164回答 2
2回答

守着一只汪

只需对测试文件使用构建约束。// +build windows构建约束被评估为空格分隔选项的 OR;每个选项都计算为其逗号分隔项的 AND;并且每个术语都是一个字母数字单词,或者在前面加上 !,它的否定。也就是说,构建约束:

aluckdog

原来我错了。它确实有效。问题是我还有一个名为 的文件foo_unix_test.go,显然 Go 不支持这种*_unix.go特殊情况的语法。
随时随地看视频慕课网APP

相关分类

Go
我要回答