如何阻止Jenkins将良好的测试运行标记为错误?

时间:2018-11-02 12:33:57

标签: c# selenium jenkins

我正在通过批处理文件在Jenkins中运行C#/硒测试。

$(document).on('click','a[data-car="blue"].plus',function(e) {
  e.stopImmediatePropagation();
  alert("car blue");
});

$(document).on('click','a[data-bike="blue"].plus',function(e) {
  e.stopImmediatePropagation();
  alert("bike blue");
});

在蝙蝠文件中

Example call "C:\FrontEnd\MobileRegression.bat"

这很好,在此示例中,有10种情况要运行。 有时,其中一种或两种情况会失败,但是如果发生这种情况,它们将设置为重试两次,并且总是通过第二次或第三次尝试。因此,在运行结束时,结果是通过;并且由于某些方案在首次运行时失败,因此Jenkins将其记录为失败。 无论如何,是否有改变(例如,如果90%的测试通过,然后标记为“通过”)?

在此先感谢您的帮助

Kev

1 个答案:

答案 0 :(得分:1)

Jenkins以错误结尾,因为您的批处理文件返回的退出代码不为零,这意味着:

  

程序执行完毕后,将退出代码返回到系统。退出代码(也称为“退出状态”)是0到255之间的整数。批处理系统报告此退出代码。对于成功,始终为零;对于错误,始终为零。

根据评论,我建议您采用以下方法:

#1尝试在批处理文件中捕获

您需要确保您的批次以零结束或退出成功。您可以使用错误级别退出/ b 0

这里有一些理论和例子:

#2使用jenkins管道脚本尝试捕获

通过这种方法,您需要将一个批处理文件(具有10个方案)拆分为10个批处理文件(每个方案一个)

在那之后,您可以使用jenkins管道脚本来调用每个批处理文件,并使用 try catch 来控制错误并更新counter_error变量。

在詹金斯脚本的结尾,您可以评估:

if count_error > 9
  // notify a success execution to jenkins 
  // using currentBuild.result = 'SUCCESS'

这里有一些理论和例子: