2013-01-15 121 views
0

如何使用TeamCity在每个构建中执行自动化集成测试?持续集成工具(TeamCity)中的集成测试

通常会有下列步骤操作:

  1. 从代码库中检出;
  2. 构建;
  3. 部署;
  4. 启动服务器;
  5. 在服务器上运行测试。

问题是这些步骤依赖于另一个;这一切都运行良好,直到第4步。在这里你启动服务器,但它不会去第5步,直到第4步完成。但是如果第4步完成,服务器将停止,因此第5步中的测试将无法使用服务器。

我想到的唯一解决方法很奇怪,并且丑陋(我不知道它是否真的起作用):首先在守护程序线程中触发测试,首先应该等待2分钟让服务器启动时间);由于线程是一个守护进程线程,因此JVM可以停止,并且线程仍继续触发测试。之后,它可以进入启动服务器的下一步,直到服务器被注视,计时器耗尽并触发测试。

+0

是否有任何理由你的服务器无法作为后台进程/守护进程本身运行? – Bilal

回答

1

这取决于“启动服务器”的含义。我们正是这样做的,但我们将“启动服务器”视为实际启动服务器 - 当服务器功能完整时,该步骤结束。然后我们添加第6步“停止服务器”。在第5步中,我们使用TeamCity的NUnit亚军来运行测试。它效果很好。

+0

从Start Server的Team City构建步骤调用Ant目标,该目标是启动服务器的一个.sh脚本(JBoss)。它在服务器完全正常运行时不会停止。 – m3th0dman

+0

所以这就是你的问题 - 重写脚本来启动服务器并返回并继续运行,然后编写另一个发现并停止它的脚本。 –