我正在尝试为我的应用程序实现自动化集成测试。这是一个非常复杂的怪物。你可以说它的数据库和文件系统的一部分是它的状态的一部分,因为它将图像文件保存在硬盘驱动器中,并引用数据库中的那些文件。软件需要所有这些,在连贯的状态下,才能正常工作。
回到编写测试:要运行任何相关测试,我需要文件系统中的一些图像文件,以及在数据库中填写的某些记录。我想把所有这些都放在存储库中一个名为 TestEnvironmentData 的单独文件夹中,然后从持续集成服务器(Team City)中检索它们,但一位同事说 repo 已经很满了,我应该设置一个特殊目录和数据库,仅在持续集成服务器中。我不喜欢这样,因为测试成功取决于我手动维护服务器中的内容,并在每次测试变得繁琐之前恢复初始状态。
当你需要为这样的应用程序编写集成测试时,你们会怎么做?主要目标是拥有一个自动化测试工具来进行大规模重构。有很多意大利面条式的代码,应用程序的当前架构很难进行单元测试,这就是我决定首先进行集成测试的原因。
欢迎任何替代方法。