亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

需要在獨立的 karate.jar 中使用 JavaScript 檢查給定目錄的文件夾

需要在獨立的 karate.jar 中使用 JavaScript 檢查給定目錄的文件夾

人到中年有點甜 2023-09-07 14:32:37
我需要使用獨立 karate.jar 中的 JavaScript 檢查給定目錄的文件夾、文件和文件詳細信息(文件大?。?,并且此驗證是測試自動化腳本的一部分。我知道這可以通過在 Maven 中編寫自定義 Java 包并在空手道腳本的 JavaScript 中使用它們來實現。如何在獨立的 karate.jar 中實現這一點。將目錄路徑和目錄名稱作為兩個參數傳遞給 JavaScript 函數,該函數驗證給定的目錄名稱是否存在于提供的目錄路徑中。它是處理文件系統對象的一種。我了解空手道僅支持讀取文件,而不支持讀取目錄中的文件夾名稱和文件名/文件詳細信息。讀取空手道腳本中的文件:https://intuit.github.io/karate/#reading-files 允許的文件擴展名是:.json、.xml、.yaml、.csv、.txt、.feature請指導我如何在空手道中使用 Javascript 來實現這一點?謝謝錢德拉。
查看完整描述

1 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

是的,這對于獨立 JAR 來說更困難。以下是一些建議:

  • 編寫一個小 JAR 文件(一次性),您可以將其包含在獨立項目中

  • 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


查看完整回答
反對 回復 2023-09-07
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號