首页 文章

如何将Gauge与Jenkins集成

提问于
浏览
0

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

首先:我在"Execute Windows Batch Command"字段中设置 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)

所以我将相同的命令放在批处理文件中并运行它只是为了再次获取"no plugins found"消息 . 作为最后一个选项,我勾选 Use custom workspace 并将我的目录设置为一个文件夹,我通常从命令行运行规范测试,但它仍然是"no plugins found"

然后我尝试将其作为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

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

2 回答

  • 2

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

    答案很长:

    Currently ,Gauge可执行文件安装在系统级别 . 而Gauge插件(语言运行器,报告插件等)则安装在用户级别 . 因此,如果您手动将插件安装为一个用户,并且如果针对不同用户运行任务,则在CI上安装插件, gauge 将无法找到插件 .

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

  • 1

    我怀疑您正在安装和使用Gauge作为不同的用户 . 与许多CI工具一样,任务通常在不同于用户登录代理的用户下执行 .

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

    因此,如果您以 user1 登录并执行 gauge --install javagauge --version 将仅在您以 user1 登录时将 java 列为插件 .

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

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

相关问题