Need to check folders, files and file details for given directory using JavaScript in standalone karate.jar(需要使用独立的karate.jar中的JavaScript检查给定目录的文件夹、文件和文件详细信息)
问题描述
我需要使用独立karate.jar中的JavaScript检查给定目录的文件夹、文件和文件详细信息(文件大小),并且此验证是测试自动化脚本的一部分。
我知道这可以通过用maven编写自定义Java包并在空手道脚本的JavaScript中使用来实现。
如何在独立的karate.jar中实现此功能。将目录路径和目录名作为两个参数传递给验证给定目录名是否存在于提供的目录路径中的JavaScript函数。它是一种处理文件系统对象的类型。
我知道空手道只支持读取文件,而不支持读取目录中的文件夹名称和文件名/文件详细信息。 阅读空手道脚本文件:https://intuit.github.io/karate/#reading-files 允许的文件扩展名为:.json、.xml、.yaml、.csv、.txt、.Feature
请指导我如何在空手道中使用Java脚本实现这一点?
谢谢 钱德拉。
推荐答案
是的,使用独立JAR更难。以下是一些建议:
- 编写一个可以包含在独立项目中的小JAR文件(一次性):https://stackoverflow.com/a/56458094/143475
- 通过
karate.exec()
使用操作系统命令,例如在Windows* def homePath = karate.exec('cmd /c echo %HOMEPATH%')
- 通过一些工作,您可以创建使用JVM库的纯JS脚本,但您需要很好地理解Java中存在的内容,并且这些脚本很难调试,所以我不推荐使用这种方法。下面我举个例子:
* def findFile =
"""
function(file, condition) {
var root = new java.io.File(file);
function recurse(file) {
var list = file.listFiles();
for (var i = 0; i < list.length; i++) {
var f = list[i];
if (f.directory) {
// karate.log('recurse:', f);
return recurse(f);
} else {
var path = f.path;
// karate.log('scan:', path);
if (condition(path)) {
karate.log('*** found:', path);
return f;
}
}
}
}
return recurse(root);
}
"""
* def filter = function(x){ return x.contains('/test-') && x.endsWith('.log') }
* def found = findFile('.', filter)
* print 'found:', found
这篇关于需要使用独立的karate.jar中的JavaScript检查给定目录的文件夹、文件和文件详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:需要使用独立的karate.jar中的JavaScript检查给定目录的文件夹、文件和文件详细信息


- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 400或500级别的HTTP响应 2022-01-01