提供测试工具¶
每个 Oslo 库都需要提供支持工具来测试使用该库的代码。 随着时间的推移,我们发现了一些有效和无效的模式,这份策略文档描述了我们通用的方法。
问题描述¶
最初,我们创建了 oslotest 作为包含所有项目所有单元测试的基础类的地方,以便为项目提供测试套件中的通用行为。 然而,当应用程序想要使用自己的基础类和测试固定装置类,并且这些类以不兼容的方式组合时,使用通用的基础类并不总是可行的。 特别是多重继承是一个问题,因为测试用例的设置和清理顺序更难理解。
拟议政策¶
大多数库都包含固定装置,而不是测试基础类。 固定装置更加隔离,更容易测试,并且通常证明在不可预见的方式下组合起来更简单。 基于这种经验,以及测试类继承的问题,我们应该将单元测试工具限制为固定装置,并避免使用基础类或混合类。
替代方案与历史¶
如上所述,最初的计划是在 oslotest 中创建基础类。
实现¶
里程碑¶
此策略将在 Liberty 周期中生效。
工作项¶
弃用 oslotest 中的测试基础类,并在固定装置中复制其功能(参见 重构 oslotest 中的测试基础类)。
弃用 oslo.db 中的测试基础类,并在固定装置中复制其功能(参见 https://blueprints.launchpad.net/oslo.db/+spec/make-db-fixture-public)。
参考资料¶
关于 oslo.db 和 nova 的问题的 IRC 讨论,始于
2015-02-24T11:36:58在 http://eavesdrop.openstack.org/irclogs/%23openstack-oslo/%23openstack-oslo.2015-02-24.loghttps://blueprints.launchpad.net/oslo.db/+spec/make-db-fixture-public
修订历史¶
发布名称 |
描述 |
|---|---|
Liberty |
引入 |
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode