首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FinalBuilder和AQTime获取DUnit测试覆盖率统计信息

使用FinalBuilder和AQTime获取DUnit测试覆盖率统计信息
EN

Stack Overflow用户
提问于 2010-02-22 07:54:55
回答 2查看 1.6K关注 0票数 10

我们有一个大型的Delphi项目(150万行代码),我们正在转向使用敏捷流程。

我们已经有了一个持续集成环境(FinalBuilder),我已经对其进行了更新,以便在发给开发团队中每个人的电子邮件中包含单元测试(dUnit)和代码度量(CodeHealer)。我们的单元测试覆盖率不是很高,所以我现在正在尝试将AQtime加入其中,以获得每个构建的一些测试覆盖率结果。

我使用"Execute Program“任务来运行单元测试可执行文件,记录结果,然后解析文件。我打算使用"Run Script“任务来运行AQtime (通过COM),并将结果导出为XML,这样我就可以解析这些结果。

我遇到的问题是AQtime运行单元测试可执行文件,我失去了直接监视单元测试可执行文件的能力。我想让FinalBuilder来解析这两个任务的结果。有人知道如何在从AQtime调用dUnit结果时访问它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-26 04:26:52

我们沿着同样的路径运行,并且我们不从AQTime运行DUnit测试,

相反,我们使用FinalBuilder构建和运行Dunit测试。

我们的单元测试使用XmlTestRunner,然后我们可以很容易地知道测试是否失败,对生成的XML使用XPath查询。

更新: FinalBuilder 7.0的最新更新现在支持DUnit。它是通过它自己的XMLTestrunner.pas实现的,该目录在安装后位于FinalBuilder目录下。此运行器以与NUnit相同的格式输出测试结果。然后,它可以很好地集成到FinalBuilder服务器中。

票数 7
EN

Stack Overflow用户

发布于 2010-02-22 23:08:15

:你在描述我们正在慢慢进化的系统。

  • DUnit测试使用TextTestRunner单元中定义的TTextTestListener编译为控制台应用程序。
  • CI服务器是生成所有项目并执行所有测试的cmd脚本。
  • 测试的输出将通过管道传输到文件。

一个解决方案可能是让AQTime分析这些控制台应用程序,同时仍然能够将结果通过管道传输到一个文件,然后可以进行解析?!

另一个解决方案可能是实现您自己的TestListener对象,并让该对象将测试结果写入事件日志,直接写入日志文件、数据库或任何您喜欢的地方,并由FinalBuilder拾取。

而不是在您的项目文件中包含类似以下内容

代码语言:javascript
复制
  Application.Initialize;
  if System.IsConsole then TextTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;

它会变成这样

代码语言:javascript
复制
  Application.Initialize;
  if System.IsConsole then OurEventLogTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2308009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档