【问题标题】:Jenkins does not stop cucumber tests when aborting (pressing the stop[x] button)Jenkins 中止时不会停止黄瓜测试(按下停止 [x] 按钮)
【发布时间】:2014-12-02 21:36:43
【问题描述】:

我有葫芦在 Jenkins 上运行 iOS 测试。当作业遇到失败时,我有时会通过按作业中的 stop[x] 按钮手动中止测试。问题是即使我中止了功能文件中的下一个测试也开始运行。通过终端启动测试时未观察到此行为。在终端中退出黄瓜测试时,sim 会返回 home,并且不会启动其他测试。

我发现了一个可能有用的钩子

After do |s| 
  # Tell Cucumber to quit after this scenario is done - if it failed.
  Cucumber.wants_to_quit = true if s.failed?
end

但是,有时我不希望它仅仅因为一个场景失败而停止。我觉得 Jenkins 需要杀死所有进程,而不是。

如果有人知道如何在 Jenkins 被指示中止后通过终端手动杀死葫芦及其实例,我也会对此感兴趣。

我试过了:

ps aux | grep -i instruments | awk {'print $2'} | xargs kill -9

不幸的是,这没有奏效。可能有两个原因

  1. greping 仪器显示两个或多个进程

20272 ?? S 0:00.00 sh -c xcrun Instruments -w "iPhone 5 (8.1 Simulator)...

20273 ?? S 0:00.45 /Applications/Xcode.app/Contents/Developer/usr/bin/instruments -w iPhone 5]...

我应该切换 awk 以打印第 1 列吗?

或者原因二

  1. 我没有找到正确的流程?

这是我的一些版本信息:

calabash-ios 版本:0.11.4

Calabash::Cucumber::MIN_SERVER_VERSION: 0.11.4

Xcode 6.1

【问题讨论】:

    标签: jenkins calabash-ios


    【解决方案1】:

    你必须让 Jenkins 找到所有分叉的进程。根据作业类型,您必须将不同的环境条目传递到分叉进程中。 This 问题是关于另一种方式(如何让 Jenkins 不停止进程),但可能的环境条目的名称在那里。只需将下面的这些环境条目传递给每个分叉进程,然后process tree killer 就会找到它们:

    • BUILD_ID
    • HUDSON_SERVER_COOKIE
    • JENKINS_COOKIE
    • JENKINS_SERVER_COOKIE
    • HUDSON_COOKIE

    【讨论】:

    • 我可以使用export BUILD_ID=$BUILD_ID 并且成功了。谢谢你指路。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多