Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

217
Views
El valor del entorno de Karate no se establece en config json

Tengo config-base.js que está cargando el archivo 'env_data.json'. El script Java en config-base.js no establece los valores en la configuración como se esperaba. Estoy tratando de recopilar una lista de campos en common y appA parentElement y la configuración en config Json. Esto no lo pude lograr.

Estoy pasando appName como ' appA ' y env como ' uat ' a través del comando CLI como se muestra a continuación java -cp karate:. -Dkarate.config.dir=. -Dkarate.appName=appA -jar karate.jar myFeature.feature -T 1 -t @smoke -e uat

Estoy tratando de construir config JSON como se muestra a continuación a través de JS.

 config { baseUrl : 'http://uat.someurl.com' parameterX : 'x2', parameterY :'y2' someOtherBackendUrlA : 'http://uat.appA.com' parameterA : 'a2', parameterB :'b2' }

Mi env_data.js se ve así

 [{ appName : 'common', data: { uat: { baseUrl : 'http://uat.someurl.com' parameterX : 'x2', parameterY :'y2' } },{ appName : 'appA', data: { uat: { someOtherBackendUrlA : 'http://uat.appA.com' parameterA : 'a2', parameterB :'b2' } }}]

Mi karate-base.js está escrito como a continuación

 function fn() { var env = karate.env; karate.log('karate.env system property was :', env); if (!env) { env = 'dev'; } var listOfApplications = read('./env_data.json'); var config = {}; switch (env) { case "uat": for (var i = 0; i < listOfApplications.lenght; i++) { var appObject = listOfApplications[i]; if (karate.properties['karate.appName'] == appObject.appName) { config = appObject.data[env]; } else if ('common' == appObject.appName) { config.map(element => { element.baseUrl = appObject.data[env].baseUrl; } } break; } karate.configure('connectTimeout', 5000); karate.configure('readTimeout', 5000); return config; }

Puedo entender eso, no estoy mapeando los valores de configuración correctamente en otra condición. He probado map y foreach. pero para estas dos funciones, recibí un error que decía org.graalvm.polyglotException:TypeError: config.map is not a funtion

Me gusta construir mi configuración JSON junto con parámetros comunes en cada valor de aplicación. Por favor, muestre algo de luz sobre cómo puedo solucionar esto.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

He solucionado el problema con el siguiente fragmento.

 fn(); function fn() { const env = 'uat'; const userInput = 'appA'; var listOfApplications = [ { "appName":"common", "data":{ "uat":{ "baseUrl":"http://commonurl.com", "parameterX":"x", "parameterY":"y" } } }, { "appName":"appA", "data":{ "uat":{ "baseUrl":"http://uat.appA.com", "parameterA":"a", "parameterB":"b" } } } ]; var config={}; for (var i = 0; i < listOfApplications.length; i++) { if (userInput == listOfApplications[i].appName) { config[userInput] = {...listOfApplications[i].data[env]}; }else if ('common' == listOfApplications[i].appName) { config = {...listOfApplications[i].data[env]}; } } //console.log(config); console.log(JSON.stringify(config)); return config; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!