如何使用 TeamCity 在每次构建时执行自动化集成测试?
通常会有以下步骤:
- 从代码库签出;
- 建造;
- 部署;
- 启动服务器;
- 在服务器上运行测试。
问题是这些步骤相互依赖。在第 4 步之前一切正常。在这里您启动服务器,但在第 4 步完成之前它不会进入第 5 步。但如果第 4 步完成,服务器将停止,因此第 5 步的测试将没有服务器可工作。
我想到的唯一解决方法是非常奇怪和丑陋(我不知道它是否真的有效):首先在守护线程中触发测试,该线程最初应该等待 2 分钟(让服务器有时间开始); 由于该线程是一个守护线程,JVM 可以停止,而该线程仍然继续触发测试。在此之后,它可以进入启动服务器的下一步,直到服务器启动,计时器耗尽并触发测试。