为了账号安全,请及时绑定邮箱和手机立即绑定

如何在开发过程中构建包?

如何在开发过程中构建包?

Go
Cats萌萌 2022-09-26 15:51:12
我想在 上发布一个软件包。为了开发它,我创建了以下文件结构github.com/mylogin/mypackagemypackage/├─ mypackage.go├─ go.mod  // used to be mypackage.mod by mistake├─ tests/│  ├─ firsttest_test.go│  ├─ secondtest_test.gomypackage.go将具有一个函数 (mypackage(...))我的包装.mod目前是go.modmodule github.com/mylogin/mypackagego 1.17我的问题:在编写测试时,我需要导入:mypackage一方面,我无法导入,因为它还没有github.com/mylogin/mypackage另一方面,我应该导入,因为它最终是其他人(或操作)复制测试的方式。github.com/mylogin/mypackage我怎样才能摆脱这种矛盾呢?我的文件的正确布局应该是什么?
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

mypackage.mod目前

必须将该文件称为 。Go 工具链将忽略任何其他名称。go.mod

  • 一方面,我无法导入,因为它还没有github.com/mylogin/mypackage

这实际上并不重要。如果你有一个文件(请参阅上面关于更正文件名的注释),Go知道在发出网络请求之前首先要考虑这个问题。这意味着它将在项目的顶层找到,并意识到您当前的项目就是该模块,并使用自己。go.modgo.mod


查看完整回答
反对 回复 2022-09-26
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

一方面,我无法导入,因为它还没有github.com/mylogin/mypackage

可以,因为它是同一模块中的包。import "github.com/mylogin/mypackage"

如果由于某种原因而无法正常工作,则文件中的指令或文件中的语句中可能存在拼写错误。modulego.modimport_test.go


也就是说,通常 测试将与它自己位于同一目录中:github.com/mylogin/mypackagemypackage

mypackage/
├─ go.mod
├─ mypackage.go
├─ firsttest_test.go
├─ secondtest_test.go

如果要从外部用户的角度测试包的 API,可以声明文件而不是 。_test.gopackage mypackage_testpackage mypackage

(有关更多详细信息,请参阅辅助测试


查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信