我在项目A下用包test/api编写了以下代码:
func ListClusterTestCase() {
...
getResponse, err = ocm.Connection.Get().
Path(ClustersEndpoint).
Parameter("order", "creation_timestamp desc").
Send()
getResult := ReadResponse(getResponse, err, 200)
clusters := GetClusters(getResult)
Expect(findCluster(clusters, clusterID)).To(BeTrue()) // <-- private function defined in a different file in test/api (called clusters_test.go)
}
...
func ProbeTests() []*ocm.TestCase {
tc := []*ocm.TestCase{}
...
tc = append(tc, ListClustersTestCase(cfg)...)
return tc
}另一个项目(项目B)中的一个文件正在尝试引用ProbeTests,该项目导入了这个test/api包
import (
cms "my/project/test/api"
)
func AddTests(cfg *ocm.TestConfig) {
...
ocm.AddTestCases(cms.ProbeTests(cfg))
}在试图编译项目B时,我得到了以下编译错误:
../../go/pkg/mod/.../test/api/clusters_load_test_cases.go:59:12: undefined: findCluster为什么我的项目不能编译?为什么它不编译整个包test/api?它是否只编译包含导出的ListClusterTestCase的文件?当我编译项目A时,它工作得很好。
发布于 2020-02-27 11:25:19
如果您不希望在导入包时忽略它,则需要将findCluster声明移动到非测试文件中。
编译包时,生成时忽略以'_test.go‘结尾的文件。
https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies
https://stackoverflow.com/questions/60431656
复制相似问题