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