开发背景:
自动化开发语言使用的是TypeScript;框架用的是playwright。有个测试脚本需要先将几个文件复制粘贴到新建的项目文件夹下,系统会读取该文件,然后生成页面信息。
面临的文件:
解决方案:
1. 文件的组织粘贴,使用的是fs库、path库。首先生成fs、path库的对象。这两个库属于默认就存在的文件,不需要再导入了【我印象是,如果有问题评论区反馈吧】
然后生成源文件的文件路径,路径分成2部分:文件夹 + 文件名。定义两个名称:
public rootPath: string = “../../test/path/”
public fileName: string = “test.txt“
补充说明: “../../”这个是文件夹相对于类文件的路径。可以认为是回退几个文件夹。不理解的可以查查文件夹相对路径相关的内容或者评论区提问。
然后使用path库下的join方法,可以将两个路径拼接成一个路径:
let rootFilePath = this.path.join(this.rootPath, this.fileName)
这样就得到了源文件的路径。
同理获取目标文件路径。但是由于目标文件是动态获取的,已知获取的位置为用户目录的Document文件夹下。
这里使用process.env.USERPROFILE来定位用户目录,完整代码如下:
文件夹路径:
let targetPath: string = process.env.USERPROFILE + “\Documents\Test\”
生成的目标文件路径:
let targetFilePath: string = this.path.join(this.targetPath, this.fileName)
2. 生成了两个路径后,使用fs库下的copyFile方法,可以将源文件复制到目标文件
this.fs.copyFile(this.path.resolve(__dirname, rootFilePath), targetFilePath, (err) => {
if(erro) throw err;
})
回顾下:自动化测试过程中针对文件的处理不常见,所以一开始面临这种问题的时候,需要查询下对应开发语言对于文件、文件夹、文件操作的库和方法,然后针对性的使用,因为比较少见,所以以笔记的形式记录一下。
完整代码如下:
public rootPath: string = “../../test/path”
public targetPath: string = this.path.join(this.targetPath, this.fileName)
public fileName: string = “test.txt“
this.targetFilePath = this.path.join(this.targetPath, this.fileName)
this.rootFilePath = this.path.join(this.rootPath, this.fileName)
this.fa.copyFile(this.path.resolve(__dirname, jsonFileRootPath), jsonFileTargetPath, (err) => {
if(err) throw err;
})
}
}
原文地址:https://blog.csdn.net/Bierante/article/details/134671334
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_5939.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!