如何基于chutzpah覆盖基于构建失败?

时间:2015-05-20 14:24:27

标签: build-process cruisecontrol.net chutzpah

我觉得我已经尝试了一切我们目前有一个解决方案,在签入TFS后我们强制在CruiseControl.net上构建。在我们的解决方案中,我们使用Chutzpah JS测试适配器。如果任何JS测试失败,我们能够成功使用Chutzpah.console.exe使构建失败,现在我们希望覆盖范围内的构建失败。我找不到任何办法让Chutzpah.console.exe输出覆盖到它生成的XML文件。

我认为我可以通过编写自己的.xsl来解决问题,该解析将解析_Chutzpha.coverage.html。我打算使用CruiseControl已经解释的junit格式将其转换为xml。因为我只关心构建失败,所以我将使变换的输出看起来像更多失败的单元测试。在xsl我将设置属性失败> 0

<?xml version="1.0" encoding="UTF-8" ?>
<testsuites>
  <testsuite name="c:\build\jstest\jstest\tests\TestSpec2.js" tests="1" failures="1">
    <testcase name="Coverage" time="46" />
  </testsuite>
</testsuites>

但我真的不能,因为传入的html有自闭标签。

所以,现在我想运行Chutzpah.Console.exe并将输出传输到一个文件,因为控制台输出确实显示了总平均覆盖率,读取了该值,并且如果它低于阈值则使构建失败。

有更好的选择吗?我错过了吗?关于cruisecontrol.net我不太了解。

2 个答案:

答案 0 :(得分:1)

我认为输出到一个文件,并解析这是唯一剩下的选项。 遗憾的是,覆盖信息不在xml文件中: - (

事实上,这对Chutzpah而言比CCNet更为严重, 将CCNet视为升级的任务调度程序,它有很多选项,但依赖于它从被调用程序接收的输入。如果那个人无法提供数据,那么您仍然坚持使用这些解决方法: - (

答案 1 :(得分:0)

还有另一种选择,但它可能更像是一次旅行而不是你有兴趣开始。 Sonarqube是一个基于服务器的工具,用于管理和分析代码质量。它有一个名为&#34; Build Breaker&#34;的插件,如果不满足任何数量的代码质量指标(包括单元测试覆盖率),它允许您使构建失败。就像我说的那样,它涉及到因为你必须设置服务器并学习这个新工具,但无论如何都要好。

我使用Chutzpah和/ lcov命令行选项,以便将coverage输出到文件,然后告诉sonar在该项目的声纳配置中找到该文件中的coverage。然后,您向cruise control.net构建过程添加一个步骤以运行声纳分析,如果您已将构建断路器插件配置正确,则如果覆盖范围不在您指定的级别,则它将无法在巡航控制中构建。