我正在构建一个通过 Jenkins 运行 Mocha + WebDriverIO 的小型测试框架。出于某种原因,相对路径未按预期显示。结果,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) + '');
}
启动 Jenkins (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