我的代码有一个JUnit测试文件,该文件读取xml文件并将其转换为字符串:

String xml = new String(Files.readAllBytes(Paths.get("src\\test\\resources\\testfile.xml")));

该测试在本地运行并通过,但是当我运行Jenkins构建时,它将失败并显示java.nio.file.NoSuchFileException:src \\ test \\ resources \\ testfile.xml

推送时是否需要更改文件路径?

#1楼 票数:1

您应该为此使用资源作为流:

InputStream is = getClass().getClassLoader().getResourceAsStream(fileName);
if (is != null) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    String xml = reader.lines().collect(Collectors.joining(System.lineSeparator()));
}

(代码可以改进很多……但是它将为您提供指导)

(签出按资源尝试处理流)

#2楼 票数:1 已采纳

好了,所以我发现了问题,觉得很傻。 当Java在Windows机器上构建时,使用\\分隔文件就可以了; 但是,当詹金斯(Jenkins)生成时,文件必须用/分隔

即我的文件名应该是

src/test/resources/testfile.xml

  ask by Ethan Conner translate from so

未解决问题?本站智能推荐:

2回复

带有gradle的黄瓜应用程序在本地运行良好但在Jenkins上失败

当我运行基于黄瓜的项目时,它表现得好像无法找到Steps类 - 我可以告诉我,因为Jenkins上的日志提供了实现的代码片段。 我正在使用Gradle,我知道cuc-jvm存在问题。 构建文件的相关部分: 我不明白为什么通过Jenkins运行相同的命令(./gradlew clean
2回复

Selenium脚本在詹金斯中失败,但在本地运行良好

我的Selenium Java脚本在本地运行良好,但是在jenkins中失败。 例如: 在jenkins中运行这样的脚本后,出现错误,因为Unable to locate element: "//div[@id='TextBox']" 。 但是,当我再次在詹金斯中运行相同的脚本时,它就会
4回复

在Jenkins中,驱动程序不是可执行错误,但在本地计算机(MacBook)中运行

我在 MacBook 上工作。 当我通过 testing.xml 文件运行测试时,我们的 Jenkins 服务器正在 linux 服务器中运行,所有测试类都在运行,但是当我运行 Jenkins 构建时,它没有运行错误是说驱动程序不可执行我在 Jenkins 中创建了 maven 项目,并从 bi
2回复

Jenkins种子作业(没有此类文件或目录)

所以我现在在詹金斯(Jenkins)从事种子工作,并且遇到了这个错误 我不太确定为什么会引起这种错误。 为了测试,我在文件上做了一个chmod 777。 它还在同一工作区中找到我的.groovy文件,这很奇怪。 我正在为groovy文件使用相对路径,并为.csv文件尝试了相同的操作。
1回复

WSDL生成在Jenkins中失败,但在本地工作

这是我的POM文件 这是詹金斯的错误跟踪 不是专家专家,但令我困惑的是为什么同一个项目无法在Jenkins上失败而无法在本地环境中正常工作。
2回复

Maven-surefire-plugin测试在Jenkins构建中失败,但在本地成功运行?

我有一个通过maven-surefire-plugin执行测试的maven项目。 我观察到并正在处理的一个奇怪现象是在本地运行 执行我的测试的结果是成功构建,失败0次,错误0次。 现在,当我将此应用程序部署到Jenkins尝试构建的远程仓库中时,我会遇到各种随机EasyMock错误,通
2回复

JUnitTest在Local上运行,但在Jenkins上运行

我和詹金斯有个奇怪的错误。 Jenkins服务器与本地测试在同一台计算机上,但这是我所拥有的: 当我在Local上运行关于名为CarStatusDao的类的4个测试时(通过运行cmd Windows),在输出中: 测试没有任何问题。 当我执行完全相同的代码,但在Jenkins(从
1回复

在Jenkins中运行Windows批处理突击队时出错,但在CMD中运行正常[重复]

这个问题已经在这里有了答案: “无法将X识别为内部或外部命令,可操作程序或批处理文件”的原因是什么? 2个答案 在下面运行批处理突击队时,此方法有效,但在Jenkins中执行此操作时,出现错误。 我已经阅读了一些主题,并且安装了java jre,并且系统变量(path和ja