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

如何在 go 中为多个包提供一个通用的测试套件?

如何在 go 中为多个包提供一个通用的测试套件?

Go
慕沐林林 2021-06-04 14:09:23
当我编写接口时,在与接口相同的包中定义我的测试通常很方便,然后定义实现接口集的多个包,例如。package/package/impl/x <-- Implementation Xpackage/impl/y <-- Implementation Y是否有一种简单的方法可以package/*_test.go在子包中运行相同的测试套件(在这种情况下,位于)?到目前为止,我想出的最佳解决方案是添加一个测试包:package/tests/它实现了测试套件,并在每个实现中进行了测试以运行测试,但这有两个缺点:1) 中的测试package/tests不在_test.go文件中,最终成为实际库的一部分,由godoc等记录。2) 中的测试package/tests由自定义测试运行器运行,它必须基本上复制所有功能go test以扫描 go 测试并运行它们。似乎是一个非常俗气的解决方案。有没有更好的方法来做到这一点?
查看完整描述

3 回答

?
哆啦的时光机

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

如果您共享一段代码以供不同包重用,那么是的,根据定义,它是一个库。即使仅用于从 *_test.go 文件进行测试。与在_test.go 文件中导入“fmt”的“testing”没有区别。并且由 godoc 记录的 API 是一个加号,而不是减去恕我直言。


查看完整回答
反对 回复 2021-06-07
  • 3 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

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