【问题标题】:How to integrate Gauge with Jenkins如何将 Gauge 与 Jenkins 集成
【发布时间】:2018-07-09 16:15:31
【问题描述】:

我对 Gauge 测试工具有点熟悉,现在正致力于通过 Jenkins 执行它。

首先:我在“执行 Windows 批处理命令”字段中设置了 gauge --version。这是输出:

Started by user anonymous
Building in workspace C:\jenkins\workspace\Run_Gauge_Test
[Run_Gauge_Test] $ cmd /c call C:\WINDOWS\TEMP\hudson8329964667758110371.bat

C:\jenkins\workspace\Run_Gauge_Test>gauge --version 
Gauge version: 0.6.2

Plugins
-------
No plugins found
Plugins can be installed with `gauge --install {plugin-name}`

C:\jenkins\workspace\Run_Gauge_Test>exit 0 
Finished: SUCCESS

将此与我直接在命令行中运行 Gauge 得到的输出进行比较:

C:\jenkins\workspace\Run_Gauge_Test>gauge --version
Gauge version: 0.6.2

Plugins
-------
html-report (2.1.1)
java (0.5.1)
xml-report (0.1.3)

所以我将相同的命令放在批处理文件中并运行它只是为了再次获得“未找到插件”消息。 作为最后一个选项,我勾选了Use custom workspace并将我的目录设置为我通常从命令行运行仪表测试的文件夹,但仍然是“找不到插件”

然后我尝试将它作为 shell 命令运行。输出:

Started by user anonymous
Building in workspace C:\jenkins\workspace\Run_Gauge_Test
[Run_Gauge_Test] $ sh -xe C:\WINDOWS\TEMP\hudson211231385407124893.sh
The system cannot find the file specified
FATAL: command execution failed
java.io.IOException: Cannot run program "sh" (in directory "C:\jenkins\workspace\Run_Gauge_Test"): CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    (truncated)
    at hudson.model.Executor.run(Executor.java:404)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 16 more
Build step 'Execute shell' marked build as failure
Finished: FAILURE

当然,我将实际运行仪表测试(但它不起作用),而不仅仅是获取版本;但我认为解决为什么它没有正确获取插件详细信息会更简单。 有什么线索吗?

【问题讨论】:

  • 您能否检查一下您是否确实在 Jenkins 上手动运行了命令,并使用相同的用户帐户通过 CI 运行?
  • 嗨@apoorvam 刚开始接触jenkins,所以我不确定我是否理解。你是说 jenkins 用户帐户还是 Windows 用户帐户?我在 Jenkins 上创建了一个管理员帐户,但由于某种原因它不接受密码。所以我禁用了这里描述的安全性:wiki.jenkins-ci.org/display/JENKINS/Disable+security。您认为这是造成问题的原因吗?还是我需要在某处指定我的 windows acc 凭据?我将尝试再次创建 d admin acc。
  • Gauge 插件应通过 Jenkins 代理执行命令的用户/管理员帐户安装。看看这个文档:getgauge.io/documentation/user/current/advanced_readings/… 用于与 GoCD 和其他一些 CI 工具集成。
  • @apoorvam :这就是我所做的:重新安装 Jenkins。重新设置默认安全性。使用 Admin acc 登录。运行命令。工作得很好。所以我猜想没有 Jenkins 管理员登录导致了这个问题。感谢您的建议。如果你把你的评论作为答案,我会接受。

标签: jenkins getgauge


【解决方案1】:

应通过 Jenkins 代理执行命令的用户/管理员帐户安装仪表插件。查看以下文档以了解有关与 GoCD 和其他一些 CI 工具集成的更多信息。 https://docs.gauge.org/latest/howto/index.html#tutorials

长答案:

目前,Gauge 可执行文件安装在系统级别。而 Gauge 插件(语言运行器、报告插件等)安装在用户级别。因此,如果您以一个用户的身份手动安装插件,如果任务针对不同的用户运行,则在 CI 上安装,gauge 将无法找到插件。

要解决此问题,您应该从运行 CI 的帐户运行插件安装命令。或者正如 Srikanth 的评论所说,您可以在管道中有 gauge --install-all 任务。这会即时安装所有必需的插件。

【讨论】:

    【解决方案2】:

    我怀疑您正在以不同的用户身份安装和使用 Gauge。与许多 CI 工具一样,这些任务通常在与登录代理不同的用户下执行。

    目前 Gauge 的工作方式是:gauge.exe 在系统级别可用。但是,插件是在用户级别安装的。

    因此,如果您以user1 登录并执行gauge --install java,则仅当您以user1 登录时,gauge --version 才会将java 列为插件。

    如果您在本地系统帐户下运行 CI 代理也是如此。

    解决此问题的一种方法是将设置作为任务包含在管道中,即在尝试运行规范之前从项目根目录中获得 gauge --install-all

    【讨论】:

    • 谢谢。这帮助我理解了为什么我没有得到预期的输出,
    猜你喜欢
    • 2015-11-09
    • 2011-10-02
    • 2021-09-08
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多