java errorlevel_詹金斯不读ERRORLEVEL

我正在Jenkins中测试一个简单的构建过程; “构建”部分具有“执行Windows批处理”命令

echo %ERRORLEVEL%

cscript C:\Users\user\Documents\test.vbs

echo %ERRORLEVEL%

除了设置 ERRORLEVEL 环境变量之外,我的test.vbs什么都不做;我也尝试使用 wscript.quit 查看是否对 ERRORLEVEL 有影响

dim wShell

dim wSysEnv

set wShell = Wscript.CreateObject("WScript.Shell")

set wSysEnv = wShell.Environment("SYSTEM")

WScript.Echo "ERRORLEVEL=" & wSysEnv( "ERRORLEVEL" )

wSysEnv( "ERRORLEVEL" ) = 0

WScript.Echo "ERRORLEVEL=" & wSysEnv( "ERRORLEVEL" )

wSysEnv( "ERRORLEVEL" ) = 2

WScript.Echo "ERRORLEVEL=" & wSysEnv( "ERRORLEVEL" )

WScript.Quit 3

没有后期构建操作控制台输出如下:

Started by user anonymous

Building in workspace C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace

[workspace] $ cmd /c call C:\Users\user\AppData\Local\Temp\hudson4571524647235360597.bat

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>echo 1

1

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>cscript C:\Users\user\Documents\test.vbs

Microsoft (R) Windows Script Host Version 5.8

Copyright (C) Microsoft Corporation. All rights reserved.

ERRORLEVEL=0

ERRORLEVEL=0

ERRORLEVEL=2

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>echo 1

1

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>exit 1

Build step 'Execute Windows batch command' marked build as failure

Finished: FAILURE

如上面的输出所示,在我启动脚本之前 ERRORLEVEL 是1.脚本成功地将 ERRORLEVEL 设置为2并以代码3退出 . 但是当我检查脚本末尾的 ERRORLEVEL 时,它返回到1因为它开始了 .

我发现一些页面表示环境变量只是为当前进程和任何子进程设置的;那就是会话环境变量 .

在哪种情况下,如何设置Jenkins将测试报告为成功还是失败?它似乎不会在运行时检查变量,只是在脚本执行开始时 . 这没有用,因为脚本可能会更改变量的值 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值