首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang编译错误:导出函数中未定义的私有函数"findCluster“

Golang编译错误:导出函数中未定义的私有函数"findCluster“
EN

Stack Overflow用户
提问于 2020-02-27 10:56:56
回答 1查看 77关注 0票数 0

我在项目A下用包test/api编写了以下代码:

代码语言:javascript
复制
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

代码语言:javascript
复制
import (
    cms "my/project/test/api"
)


func AddTests(cfg *ocm.TestConfig) {
    ...
    ocm.AddTestCases(cms.ProbeTests(cfg))
}

在试图编译项目B时,我得到了以下编译错误:

代码语言:javascript
复制
../../go/pkg/mod/.../test/api/clusters_load_test_cases.go:59:12: undefined: findCluster

为什么我的项目不能编译?为什么它不编译整个包test/api?它是否只编译包含导出的ListClusterTestCase的文件?当我编译项目A时,它工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-27 11:25:19

如果您不希望在导入包时忽略它,则需要将findCluster声明移动到非测试文件中。

编译包时,生成时忽略以'_test.go‘结尾的文件。

https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60431656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档