如何为存储库 (java) 中的文件指定路径,以便我的自动化测试不会失败
Posted
技术标签:
【中文标题】如何为存储库 (java) 中的文件指定路径,以便我的自动化测试不会失败【英文标题】:how to specify a path for a file in repository ( java ) , so that my automation test won't fail 【发布时间】:2021-12-22 18:32:11 【问题描述】:我正在测试一个放心的API,编程语言是JAVA,我有一点问题,问题是,我必须使用放心发送图像,并且它在本地发送成功,但是当我推送时它到 git ,指定路径有问题,我所有的测试都在 TeamCity 上运行,我得到了我的黄瓜报告,报告如下
java.io.FileNotFoundException: C:\Users\nameOfUser\Downloads\38250987.jpeg(系统找不到指定的路径)
我希望我已经提供了足够的描述性,如果您有任何疑问,请提出您的问题,希望您的帮助和合作,在此先感谢!
代码如下
public static Response SendAnImage(String prodID,Cookies cookies)
File file = new File("C:\\Users\\userName\\Downloads\\38250987.jpeg");
System.out.println("is file found ----> "+file.exists());
Response response = given()
.multiPart("file", file, "image/jpeg")
.when()
.cookies(cookies)
.post("/api/product/"+prodID+"/file/false");
return response;
【问题讨论】:
请在这里分享您的代码,我们应该使用正斜杠作为路径参考。 感谢您的回复,代码在上面共享@ Jayanth Bala 位置应使用正斜杠 => C:/Users/userName/Downloads/38250987.jpeg。请尝试我也有其他解决方案 请问你可以分享你的另一个解决方案吗?那是什么? 将图像复制到主程序文件夹并使用此语法。这将为您提供跨操作系统的当前工作目录路径。 System.getProperty("user.dir"); 【参考方案1】:您不能在测试中引用本地文件。您需要将图片文件包含到您的 Git 存储库中,将它们作为资源加载到测试中,然后使用 REST-assured 中接受字节数组而不是文件的方法:
multiPart(String controlName, String fileName, byte[] bytes)
【讨论】:
感谢您的回复,如果您可以通过一些示例给我视觉解释,我将不胜感激,我已经尝试过您告诉我的,对我不起作用,我的意思是我肯定缺少一些东西。【参考方案2】:您可以将文件放在src/test/resources
文件夹中,然后像这样创建一个新文件:
File file = new File("src/test/resources/38250987.jpeg");
【讨论】:
以上是关于如何为存储库 (java) 中的文件指定路径,以便我的自动化测试不会失败的主要内容,如果未能解决你的问题,请参考以下文章
如何为具有特定路径(React Native)的现有项目创建私有 Git 存储库?
如何为非Spring Boot的Java应用程序指定外部配置文件