从测试中的公共包定义的结构

时间:2017-12-13 06:05:11

标签: go

这是Go中的包装问题。我有一个看起来像这样的包模式: project | --- common_test.go | --- sub1 | | | --- file.go | --- file_test.go --- sub2 | | | | | --- file.go | --- file_test.go

common_test.go看起来像这样:

package project
type Test struct {
     ...
}

sub1sub2看起来像是:

package sub1
import "project"
func SomeTest(t *testing.T) {
     test := project.Test{}
     ...
}

项目包仅包含common_test.go文件,该文件定义sub1/file_test.gosub2/file_test.go中使用的结构。但是,如果我尝试触发测试,则会收到以下错误:no buildable Go source files in project

我理解这是因为common_test.go包含_test后缀,因为它是project包中唯一的文件。但我使用后缀的原因是我不希望编译该文件,除了测试执行。

有没有办法在不包含非测试文件的包中定义特定于测试的公共结构?在这种情况下,有什么好的做法?

0 个答案:

没有答案