当我编写接口时,在与接口相同的包中定义我的测试通常很方便,然后定义实现接口集的多个包,例如。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 是一个加号,而不是减去恕我直言。
- 3 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
提交
取消