我们目前正在尝试将自动集成测试添加到我们的持续集成(CI)流程中。我们的CI流程正在使用TeamCity,并且已经构建了我们的.NET解决方案,运行NUnit测试并通过Octopus Deploy进行部署。它是一个典型的Web应用程序,使用SQL Server数据库。
所有代码和单元测试都在Git仓库中。
现在,自动化测试已经在TestComplete中编写并且运行良好。在测试运行之前,测试依赖于特定数据存在于数据库中,所以我在规划CI过程之前在运行测试之前恢复数据库。
我几乎肯定这些自动化测试属于与代码相同的repo - 所有测试都应该与代码一起进行版本控制。我不太确定的是数据库备份。我认为我们知道每个版本的测试都使用了哪个数据库备份,这一点很重要,但我读过在Git中存储大型二进制文件并不是一个好主意。目前的备份是40mb。
我在将备份存储在Git中并将其存储在某处的文件共享之间徘徊。我只是担心将来会覆盖数据库备份,然后我们测试的先前版本就会失败。我想虽然想要为以前的版本运行自动化测试并不常见,所以也许这不是问题而且我不必要地担心。有没有其他人遇到过类似的情况?你最终做了什么?
答案 0 :(得分:0)
我没有遇到过同样的情况,但这就是我如何解决这个问题:
backup-2015-02-26
。将数据库备份文件添加到您的代码库中只会让每个人都膨胀,这可能不是您想要的。
答案 1 :(得分:0)
在git存储库中添加太多数据可能会导致大的repo大小,这可能会导致新开发人员的工作效率降低和入门时间过长。
如果CI env可以访问互联网,您最好将数据存储在s3等云服务中。如果没有,除了将这些文件存储在可从CI env和开发人员的本地计算机访问的Intranet上之外,没有太多选择。