Unit testing 使用CI服务器对Web应用程序插件进行单元测试
我使用TeamCity 7作为CI服务器,我必须测试几个Web应用程序插件,主要是用PHP编写的。我熟悉ANT和*Unit,但我有一个问题需要解决:为了正确测试插件,我的想法如下:Unit testing 使用CI服务器对Web应用程序插件进行单元测试,unit-testing,web-applications,plugins,continuous-integration,Unit Testing,Web Applications,Plugins,Continuous Integration,我使用TeamCity 7作为CI服务器,我必须测试几个Web应用程序插件,主要是用PHP编写的。我熟悉ANT和*Unit,但我有一个问题需要解决:为了正确测试插件,我的想法如下: 清理测试环境 安装将承载插件的Web应用程序的干净副本 安装插件 启用插件 运行测试 显然,在已安装的环境中运行测试很容易。大多数测试都是通过直接调用插件类的方法来启动的,但是框架必须进行配置,即使设置很少,以允许调用其引导文件并执行适当的初始化。我试着在我手动准备的环境中运行测试,它们按预期运行 现在的问题是自动化
- 注意安装步骤和需要填写的表格
- 使用CURL将数据发布到每个表单
但是,这需要一个Web服务器,应用程序可以在其中运行。据我所知,TeamCity代理在自己的随机命名目录中工作,其中“安装”的任何内容都无法通过HTTP请求访问 备份/恢复
- 手动预安装Web应用程序并配置其基本设置
- 压缩应用程序的目录及其数据库的备份
- 在运行测试之前,请解压缩代理工作目录中的目录
- 还原备份的数据库。现在将“配置”应用程序
- 涉及与Web应用程序交互的测试(例如挂钩、事件处理程序等)无法运行
- 由于Web应用程序及其数据库是预先配置的,因此它们的参数在每次运行时都是相同的。因此,不可能同时运行两个代理,例如测试两个不同的插件
请注意,尽管我使用的是TeamCity,但CI服务器本身应该不是什么大不了的,因为我用ANT运行一切。因此,任何建议,即使是与另一个CI服务器相关的建议,都是受欢迎的(我知道Hudson、CruiseControl和BuildMaster,我可以很容易地修改一个概念)。谢谢。我想我找到了解决问题的办法。这需要一点努力,一旦我确定它确实有效,我会发布一个答案。