我在 python 2.7.3 中创建了一个包含大约 100 个模块的中型项目。我希望找出与我的代码兼容的以前版本的 python(例如:2.6.x、2.7.x)(在公共领域发布我的项目之前)。找到它的最简单方法是什么?
我知道的解决方案 -
- 安装多个版本的 python 并检查每个版本。但是我还没有定义测试用例,所以需要先定义它们。
- 阅读并比较我希望检查兼容性的各种 python 版本的变更日志,并据此找出。
请提供更好的解决方案。
我在 python 2.7.3 中创建了一个包含大约 100 个模块的中型项目。我希望找出与我的代码兼容的以前版本的 python(例如:2.6.x、2.7.x)(在公共领域发布我的项目之前)。找到它的最简单方法是什么?
我知道的解决方案 -
请提供更好的解决方案。
如果没有一些测试用例,我真的不知道如何解决这个问题。即使您的代码可以在旧版本的 python 中运行,如果没有一套充分测试您的代码的测试用例,也不能保证它可以正常工作
不,您所命名的几乎就是它的完成方式,尽管“最新消息”页面和文档本身可能比完整的变更日志更有用。对如此巨大的移动目标的兼容性即使是部分自动化也是不可行的。这并不像听起来那样多,因为:
因此,您可以将自己限制为 2.7(它已经发布了三年),或者对旧版本进行测试。如果您只想确定它是否兼容,而不是确定存在哪些不兼容以及如何修复它们,您可以:
1)如果您要保持与以前版本的兼容性,那么测试是要走的路。即使您的代码现在恰好兼容,如果您不注意,它也可能在将来的任何时候停止兼容。
2)如果向后兼容不是一个目标,而只是“对于那些足够幸运的人来说是一个不错的附加功能”,那么 OSS 的一个简单方法是让用户试用它,并指出“它已经过测试,<version>
但可能在以前的版本中工作出色地”。如果您的用户群中有任何人对在早期版本中运行您的代码感兴趣(并保持与它的兼容性),他们可能会给您反馈。如果没有,为什么要打扰?
使用一些测试用例会容易得多,但手动测试可以给你一个合理的想法。
采用您希望支持的最远版本,(我建议使用 2.5.x,但如果必须的话,请更早 - 使用该版本手动测试,记录您所做的事情,特别是在哪里失败(如果有的话) - 如果它确实失败了然后要么解决问题,要么进行二分搜索,看看故障点在哪个版本消失。如果你从一个你很确定会失败的版本开始,这可能会更好,也许是 2.0。