Automated tests 如何使用具有自动化测试的虚拟机?
我正在尝试使用虚拟机环境为我们的应用程序设置自动测试 我想要的是以下场景:Automated tests 如何使用具有自动化测试的虚拟机?,automated-tests,teamcity,virtualization,Automated Tests,Teamcity,Virtualization,我正在尝试使用虚拟机环境为我们的应用程序设置自动测试 我想要的是以下场景: 生成服务器将自动触发,以启动应用程序的自动测试 然后运行一个“构建”脚本,该脚本包括: 将应用程序文件和测试脚本复制到VM可访问的位置 启动虚拟机 在VM中,一个特殊的应用程序查看共享文件夹并启动测试脚本 测试脚本完成其工作,结果输出到共享文件夹 测试脚本结束 然后,特殊应用程序删除测试脚本 特殊应用程序以某种方式让VM管理器关闭VM并恢复到以前的快照 VM退出后,处理结果并发送到生成服务器 我正在使用TeamCit
有什么建议吗?尽管我对这两个方面都没有任何经验,但最近我碰巧听说在这个领域有几个应用程序:
VirtualBox确实有一个。我没有这方面的经验,但也许可以使用它。一种选择是让TeamCity发布一个脚本来实现这一点。我建议从(TeamCity本机支持的)开始,并在必要时可能执行PowerShell。我有一个类似的设置正在运行,我选择使用与我们的开发人员用于规范化开发环境相同的东西 virtualmachine的初始状态是使用puppet编写的,但是我们没有在每个测试中从头开始运行部署脚本,每天只运行一次 您可以使用puppet/chef来完成所有操作,但是对于VM上的所有其他操作,我们都会使用脚本,因为它们也用于实际部署,并且以某种方式更适合我们的工作方式。总而言之,脚本将类似于以下内容:
vagrant up # fire up the vm, and run the puppet provisioning tool
fab vm run_test # run tests on vm
fab local process_result # process results on local shared folder
vagrant destroy # destroy the vm
优点是,您的开发人员也可以使用vagrant来模拟您的生产环境,而无需自行处理(即,对数据库设置的更改会同步到所有开发人员的虚拟机上,无论它们在何处),同样的脚本也可以在生产中使用。很高兴知道有一种编程方式。去检查是否有人给它做了一个C字头。@Stecy-它是COM,所以你可能不需要C字头。尤其是当您使用.NET4并且可以使用dynamic关键字时。