我正在使用TeamCity 7作为CI服务器,我必须测试几个主要使用PHP编写的Web应用程序插件。我熟悉ANT和* Unit,但我有一个问题要解决:要正确测试一个插件,我的想法如下:
显然,在已安装的环境中运行测试很容易。大多数测试是通过直接调用插件的类的方法来解决的,但是必须配置框架,即使使用最少的设置,也允许调用其引导程序文件并执行适当的初始化。我尝试在我手动准备的环境中运行测试,并按预期运行。
现在的问题是自动安装标准Web应用程序,最重要的是,它的配置。基本步骤如下:
棘手的部分是并非所有Web应用程序都实现了命令行界面,例如Drupal的 drush ,因此我提出了两种可能的方法来完成安装:
通过CURL模拟手动安装
我仍然手动尝试了这种方法,结果可以接受。 Web应用程序按预期安装,可以使用 但是,这需要运行应用程序的Web服务器。据我所知,TeamCity Agents在他们自己的随机命名目录中工作,并且无法通过HTTP请求访问其中“安装”的任何内容。
备份/恢复
这种方法有点“粗糙”,但它不需要运行Web服务器。虽然Web应用程序无法为HTTP请求提供服务,但这并不一定重要,因为测试将针对插件的类运行。
这种方法有两个主要缺点:
我现在想知道是否有更好的解决方案,因为上述内容对我来说都不是最佳选择。
请注意,虽然我正在使用TeamCity,但CI服务器本身应该不是什么大问题,因为我正在使用ANT运行所有内容。因此,任何建议,甚至与另一个CI Serverm相关,都会受到欢迎(我知道Hudson,CruiseControl和BuildMaster,我可以轻松地调整一个概念)。感谢。