首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go生成错误:<dir>中没有非测试Go文件

Go生成错误:<dir>中没有非测试Go文件
EN

Stack Overflow用户
提问于 2017-10-24 05:52:57
回答 3查看 12K关注 0票数 9

尝试从$GOPATH/src运行go build ./...时出现错误。

代码语言:javascript
复制
no non-test Go files in <dir>

错误是正确的,<dir>中没有测试文件,但是为什么会导致编译错误呢?这是个bug吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-24 07:13:52

称其为错误…如果测试编译,构建应该不会失败。归档地址:https://github.com/golang/go/issues/22409

我提交的bug是https://github.com/golang/go/issues/8279的副本,看起来它是在1.3版本中被破坏的。

票数 2
EN

Stack Overflow用户

发布于 2017-10-31 06:48:22

我不认为这是一个bug,除非您在文档中看到与此行为相矛盾的地方,否则您可能应该关闭您创建的问题。

go中的测试通常存在于他们正在测试的包中。你已经创建了一个在顶部有main包的新包(如果你在其他地方也有main包,则无效),然后在test/main包中没有go源文件(无效,因为包除了test之外没有go源文件,这是编译器明确抱怨的)。

为您提供可能的解决方案(假设这不是一个假设问题):

  • 将main的测试移动到test_main.go (这是读者所期望的)
  • 将doc.go文件添加到您的测试包中,并在这两个文件中将其称为包测试

将测试放在同一个包中的原因是为了确保它们可以访问整个包,如果你想将它们拆分到另一个包中,你会发现你必须以pkg的外部用户的身份进行测试-这可能会很痛苦。Main也是一种特殊情况,因为你通常不会导入它。

票数 2
EN

Stack Overflow用户

发布于 2018-11-22 18:31:29

首先,检查您的$GOPATH是否已正确设置。要了解更多信息,请访问here

然后,检查文件名中是否有'_‘。删除这些‘_’,然后重试。;-)

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

https://stackoverflow.com/questions/46899112

复制
相关文章

相似问题

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