【问题标题】:Integration tests in Continious Integration Tool (TeamCity)持续集成工具(TeamCity)中的集成测试
【发布时间】:2013-01-15 13:25:58
【问题描述】:

如何使用 TeamCity 在每次构建时执行自动化集成测试?

通常会有以下步骤:

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

问题在于这些步骤相互依赖;在第 4 步之前一切正常。在这里您启动服务器,但在第 4 步完成之前它不会进入第 5 步。但是如果第 4 步完成,服务器将停止,因此第 5 步的测试将没有服务器可工作。

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

【问题讨论】:

  • 您的服务器是否有任何原因无法作为后台进程/守护进程本身运行?

标签: java continuous-integration teamcity integration-testing


【解决方案1】:

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

【讨论】:

  • 从 Team City 在 Start Server 构建步骤中调用 Ant 目标,该目标是一个启动服务器 (JBoss) 的 .sh 脚本。当服务器完全正常运行时,它不会停止。
  • 这就是你的问题 - 重写脚本以启动服务器并返回它仍在运行,然后编写另一个找到它并停止它。
猜你喜欢
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2015-03-24
  • 1970-01-01
相关资源
最近更新 更多