Я создаю небольшую тестовую среду, работающую с Mocha + WebDriverIO через Jenkins. По какой-то причине относительный путь не отображается должным образом. В результате fs.js выдает ошибку:
Ошибка:
Ошибка: ENOENT, нет такого файла или каталога «C:\workspaces\nodejstest\jenkins\JENKINS_HOME\jobs\browse_test\workspace\login.js»
Путь должен быть: 'C:\workspaces\nodejstest\login.js' (абсолютное расположение исполняемого скрипта). У кого-нибудь есть понимание, почему путь к каталогу неверен, хотя я выполняю скрипт из того же каталога, а НЕ из каталога рабочей области Jenkins, как указано в ошибке. Когда я запускаю его из cli, он работает нормально. Странный.
Тестовый скрипт (run_test.js):
var common = require('./common/common.js'), // INCLUDES FS LIBRARY
scriptList = ['login', 'browse_price_ascending'];
// ITERATE THROUGH SCRIPT NAMES AND EXECUTE
for(var currentScript in scriptList){
// BUILD SCRIPT PATH
var scriptPath = './' + scriptList[currentScript] + '.js';
// EVAL IS NOT ALWAYS EVIL ;)
eval(common.fs.readFile(scriptPath) + '');
}
Запустите Дженкинса (run.sh):
#!/bin/bash
export JENKINS_HOME=./jenkins/JENKINS_HOME
java -jar ./jenkins/jenkins.war
Дженкинс Работа:
mocha $JENKINS_HOME/../../run_test.js --brand=IBSD --country=UK --env=PROD