Python测试/TeamCity集成/sane包管理器

2024-06-16 13:47:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我的同事们目前正在测试python的一些软件包的初始设置,但是我正在运行一些关于python的基础代码的测试步骤。任何帮助都是非常感谢的,因为我们以前在Python中没有这样做过(它看起来是a bit... fractured)。在

要求:

  • 测试可以通过脚本运行(Nose看起来不错)
  • 它在windows机器上运行
  • 它可以通过TeamCity以及标准的开发人员机器来运行。优秀的TeamCity报告/整合将是一种奖励。在
  • 我们应该能够调用脚本并在多台计算机上获得正确的、可重复的结果。在
  • 所有依赖项/包的需求都以一种简单、可重复的方式得到满足(我们使用ruby&bundler对主代码库进行了这项工作,并努力在python中重复这一技巧)。如果人们不得不手动安装鸡蛋/使用简易安装等,这将是地狱般的。您应该能够调用一个脚本,该脚本说“请确保这些依赖项被考虑在内,然后运行我们的测试”。在

理想情况下,工作流应该这样工作(暂时忽略我们如何安装/获取python):

  • Windows机器与SCM同步
  • 机器运行一个脚本,以确保所有python依赖项(Shapely等)都被考虑在内
  • 机器能够调用运行nose或其他测试运行程序的脚本
  • 脚本返回一个值来指示生成是否失败

加分问题

我们愿意在每个dev-machine/build-agent上安装python,而不是将其签入到源代码管理中,不过,如果我们可以将其签入并忘掉它,那就更好了。到目前为止,我们在这方面的最佳选择是将python安装目录与pythonxx.dll在Windows/System32中找到,但我不确定这是否是一个有缺陷的方法。在

我们发现了Movable Python和{a5}。你知道最好的方法是什么吗?就像我说的,如果不可行的话,我们愿意咬紧牙关,在每台机器上安装python。在

干杯!在


Tags: 方法代码脚本机器标准开发人员windowsbit
1条回答
网友
1楼 · 发布于 2024-06-16 13:47:57

在没有更好的办法的情况下,我们通过反复试验来解决这个问题。目前,我们的代码库很小,因此这种方法可能存在一些尚未暴露的缺陷,但我们暂时还是会继续使用它。在

最后,我们:

  • 向SCM添加了PortablePython2.7。这才管用(tm)。在
  • 已将curl添加到SCM
  • 创建了一个windows.bat文件,该文件调用curl并下拉并安装python安装工具。然后我们通过安装工具(meta packaging ahoy)安装pip。然后根据需求文件运行Pip。pip需求文件包含nose(python测试运行程序)和teamcity nose(teamcity CI integration for nose)等。在

然后我们调用测试运行程序,它会自动收集我们的测试,没有任何麻烦。不错!在

以后还要去看virtualenv。在

编辑(未来N年):

Pip是python2.7.9及更高版本中的标准配置。现在做事情最简单的方法是:

  1. 使用现成的pip
  2. 安装virtualenv
  3. 为项目创建一个virtualenv并激活它
  4. 使用pip安装依赖项(不幸的是,有时不得不回退到easy-tu安装)
  5. 迪斯科。在

另外,除非您确实需要,否则不要使用可移植python。真希望我们不要就此了结。在

相关问题 更多 >