2

我已经设置了 Jenkins,以便它构建我的项目,运行一些测试,然后创建一个包含报告的 HTML 页面。

我制作了一个 .bat 文件以在浏览器中打开 html 报告。该 .bat 文件中只有一行:

"E:\user\Visual Studio 2010\JenkinsWorkspace\JobTest\index.html"

当我自己在提示符中运行该 .bat 时,页面 index.html 是打开的(因此它可以工作)。

但问题是,当我设置 Jenkins 的作业来运行该 .bat 时,什么也没有发生。 调用 .bat 后,作业卡住了,永远不会完成。

知道为什么吗?

注意:我有 Jenkins 成功执行的其他 .bat(不打开 html 页面)。

编辑:这是我在詹金斯菜单的提示日志中得到的错误:

C:\Program Files\Jenkins\jobs\JobTest2_enUnSeulScript\workspace>echo "打开 html 页面" ">> 打开 html 页面"

C:\Program Files\Jenkins\jobs\JobTest2_enUnSeulScript\workspace>"C:\Program Files\Google\Chrome\Application\chrome.exe" "E:\user\Visual Studio 2010\JenkinsWorkspace\JobTest\testResults.14h05m15s65ms.11.04 .2013.trx.htm" [688:3900:0411/140520:ERROR:gpu_info_collector_win.cc(96)] 无法检索有效的 WinSAT 评估。
[688:3900:0411/140520:ERROR:process_singleton_win.cc(540)] 无法创建锁定文件!错误代码:32
[688:3900:0411/140520:ERROR:chrome_browser_main.cc(1157)] 无法为您的配置文件目录创建 ProcessSingleton。这意味着运行多个实例将启动多个浏览器进程,而不是在现有进程中打开一个新窗口。现在中止以避免配置文件损坏。
构建步骤 'Exécuter une ligne de commande batch Windows' 将构建标记为失败 [htmlpublisher]
归档 HTML 报告... [htmlpublisher] 在项目级别归档 E:\user\Visual Studio 2010\JenkinsWorkspace\JobTest 到 C:\Program Files\ Jenkins\jobs\JobTest2_enUnSeulScript\htmlreports\HTML_Tests_Report 已完成:失败

4

3 回答 3

6

如果您将 Jenkins 作为 Window 的服务运行,您可能需要启用该服务以与桌面交互。请执行下列操作:

  1. 打开服务模块
  2. 右键单击 Jenkins 并选择“属性”
  3. 在“登录”选项卡上,以“本地系统帐户”运行并选中“允许服务与桌面交互”复选框

- 或者 -

您可以通过命令行运行 Jenkins。即:“java -jar jenkins.war”。

于 2014-02-02T04:51:43.793 回答
1

我猜你的 Jenkins 安装是作为 Windows 服务运行的。当 Jenkins 在 Windows 机器上作为服务运行时,它在系统帐户下运行,而不是用户帐户。系统帐户通常没有与用户帐户相同的设置。

您可能想尝试将 CMD shell 作为系统帐户启动。(这个问题的答案应该可以帮助您:How Do You Run CMD under System Account。)从那里,尝试运行批处理文件,看看会发生什么。你可能会发现你需要在它工作之前设置一些类似 PATH 的东西。

于 2013-04-11T13:54:38.437 回答
0

我知道这已经晚了,但我刚刚回答了另一个关于如何在 Windows 上从 Jenkins 的服务中打开 .exe(或 .bat)的问题

在 Jenkins CI 上打开 Excel

问题是,虽然您的命令实际上有效,但它在Session 0(这是启动 Jenkins 服务的用户会话Local System)中执行此操作,您在通过自己的用户帐户登录时看不到它,很可能是在Session 1.

希望这可以帮助

于 2014-03-24T16:39:51.980 回答