【发布时间】:2021-10-07 15:13:35
【问题描述】:
我正在使用 Jenkins 来安排我的 selenium/java 自动化测试(打包到 .jar 文件中的测试脚本)。
我创建了一个.bat 文件来触发.jar 文件,我正在从Jenkins 调用.bat 文件。
当我手动触发测试时,双击.bat 文件,一切运行顺利。但是当我尝试通过 Jenkins 运行相同的测试时,每个测试用例都会出现以下错误:
“系统找不到指定的文件”
Jenkins 正在成功调用 .bat 文件,因为我可以看到 jenkins 控制台上显示的测试用例名称(存在于 .jar 文件中)。
在我的 java 代码中,我使用.\ 来表示我的 jar 文件所在的“当前目录”以及一个数据驱动自动化框架的 excel 文件。甚至 .bat 文件也存在于同一位置,并且我在 .bat 文件和 jenkins 上都给出了完全限定的路径。
我不能硬编码,必须在我的 java 代码中使用./。我在 Windows Server(不是我的本地机器)上运行它。
【问题讨论】:
-
也许this 会有所帮助。
-
手动运行时从哪个目录运行?在运行
.bat文件之前,您是否尝试过让 Jenkins 更改到同一个目录?我的猜测是这是与您的.bat或.jar文件以外的其他文件有关的工作目录问题。 -
@mrfreester - 我从 C:/Desktop/QA 目录手动运行它。在 jenkins 中,在配置构建操作下,我选择了“windows bat 文件”并给出了完整路径 - C: /Desktop/QA/trigger.bat 另外,在 bat 文件中,我将 PATH 和 CLASSPATH 值分别设置为 C:/ProgramFiles/java/jdk1.7 和 C:/Desktop/QA 目录。
-
@ShreyasSG 尝试使用
Execute Windows Batch Command代替您的构建步骤。在第一行,输入cd C:/Desktop/QA/。在您的第二行尝试trigger.bat或C:\Desktop\QA\trigger.bat。否则,您可能必须弄清楚您的脚本中试图使用工作目录的内容。如果可行,我会把它作为答案,让我知道:) -
还有一点需要考虑,你对 Jenkins 盒子的所有依赖吗?您引用的所有 Web 驱动程序或其他文件?您看到的
cannot find the file错误中是否有更多详细信息?
标签: java windows selenium batch-file jenkins