我正在使用Jenkins来安排我的selenium/java自动化测试(测试脚本打包到一个.jar
文件中)。
我已经创建了一个.bat
文件来触发.jar
文件,我正在从Jenkins调用.bat
文件。
当我通过双击.bat
文件手动触发测试时,一切都运行得很顺利。但是当我试图通过Jenkins运行相同的测试时,我在每个测试用例中都得到了以下错误:
“系统找不到指定的档案”
Jenkins成功地调用了.bat
文件,因为我可以看到测试用例名称(存在于.jar
文件中)显示在Jenkins控制台上。
在我的java代码中,我使用.\
来表示“当前目录”,其中包含jar文件和一个excel文件,其中的数据驱动自动化框架。甚至.bat
文件也出现在同一个位置,并且我给出了.bat
文件和jenkins的完全限定路径。
我不能硬编码,必须在我的java代码中使用./
。我在Windows Server上运行这个程序(不是我的本地机器)。
6条答案
按热度按时间8ftvxx2r1#
识别当前目录路径,其中.bat文件被放置和附加/添加到系统路径变量。一旦完成,然后允许jenkin执行.bat文件。
vshtjzan2#
这是一个问题,当你在Jenkins上运行时,你的工作目录不同。
最简单的修复:执行Windows批处理命令来代替您的构建步骤。在第一行,输入
cd C:/Desktop/QA/
来更改您的工作目录以匹配您在本地执行的操作。在第二行,使用trigger.bat
或C:\Desktop\QA\trigger.bat
。更可靠的修复:在你的java代码中,当引用其他文件时,你使用
.\
。这基本上意味着当前目录,如果你在不同的工作目录中,这将不是你想要的。相反,你可以使用look at this question/answer,它显示了如何引用你的.jar
文件所在的目录,而不是工作目录。总之,这样做:pw9qyyiw3#
这个问题是在Jenkins的安装上。一个devops的工程师帮我解决了这个问题。必须在里面安装Tomcat和Jenkins。他说:“如果Jenkins是作为UI安装的,它就不能打开另一个UI。因此我们应该在一个单独的服务器上安装.war文件,为Jenkins创建单独的UI,这样我的应用程序UI(firefox)就可以在本地启动了。”
cbjzeqam4#
似乎在删除文件/文件夹或将文件复制到远程服务器时,可能会给予以下错误信息:
要解决此问题,您必须在源和目标中给予相对路径,而不是绝对路径,如下所示。例如,此处C:驱动器(远程服务器)。
样品:
72qzrwbm5#
对我来说,在java“C:\Program Files\Java\jdk1.8.0_301/bin/java”的路径中有一个额外的空间,我更新了它,它工作了。
omhiaaxx6#
新的Jenkins。。遵循postamn的文章,以设置这与纽曼。。我得到了类似的东西。
在工作空间C:\ProgramData\Jenkins.jenkins\workspace\分配[分配] $ sh -xe C:\WINDOWS\TEMP\jenkins4486248303661911584.sh中以系统构建运行系统无法找到指定的文件FATAL:命令执行失败
有什么主意吗?