我和我的同事们目前正在采取一些步骤来自动化一个胚胎 python 代码库的测试,但是我们在环境设置和包管理方面遇到了一些问题。感谢您提供任何帮助,因为我们以前没有使用 Python 做过这件事(而且看起来有点……断裂)。
要求:
- 测试可以通过脚本运行(鼻子看起来不错)
- 它在windows机器上运行
- 它可通过TeamCity以及标准开发人员机器运行。良好的 TeamCity 报告/集成将是一个奖励。
- 我们应该能够调用脚本并在多台机器上获得正确、可重复的结果。
- 所有依赖项/包要求都以一种简单、可重复的方式得到满足(我们使用 ruby 和 bundler 对我们的主代码库执行此操作,并且正在努力使用 python 重复这个技巧)。如果人们不得不手动安装鸡蛋/使用easy_install等,那将是地狱般的。您应该能够调用一个脚本,上面写着“请确保考虑到这些依赖关系,然后运行我们的测试”。
理想情况下,工作流程应该像这样工作(暂时忽略我们如何安装/获取 python):
- Windows 机器同步到我们的 SCM
- 机器运行一个脚本以确保所有 python 依赖项(Shapely 等)都被考虑在内
- 机器能够调用运行nose或其他一些测试运行器的脚本
- 脚本返回一个值来指示构建是否失败
积分问题:
我们愿意在每台开发机器/构建代理上安装 python,而不是将其签入源代码控制,尽管如果我们可以将其签入并忘记它会很好。到目前为止,我们在这方面最好的选择是将 python 安装目录与 Windows/System32 中的 pythonxx.dll 一起检查到 SCM 中,但我不确定这是否是一种有缺陷的方法。
我们发现了 Movable Python和Portable Python。知道最好的方法是什么吗?就像我说的,如果这不可行,我们愿意硬着头皮在每台机器上使用 .msi 安装 python。
干杯!