diff --git a/.travis.yml b/.travis.yml index 74c564963..8015495d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: node_js sudo: false node_js: + - "0.10" - "0.12" - "4" @@ -20,6 +21,8 @@ matrix: exclude: - env: JOB=smoke node_js: "0.12" + - env: JOB=smoke + node_js: "0.10" before_script: diff --git a/lib/configParser.js b/lib/configParser.js index b76a418a1..ab0b963e2 100644 --- a/lib/configParser.js +++ b/lib/configParser.js @@ -98,15 +98,15 @@ ConfigParser.resolveFilePatterns = for (var i = 0; i < patterns.length; ++i) { // Cucumber allows running a spec given a line number. See // https://github.com/angular/protractor/issues/2413 - var lineNumber = ''; - var parsedPath = path.parse(patterns[i]); - parsedPath.base = parsedPath.base.replace(/:\d+/, function (match) { - lineNumber = match; - return ''; - }); - - var filePath = path.format(parsedPath); - var matches = glob.sync(filePath, {cwd: cwd}); + // TODO: when we deprecated node < v0.12 switch to using path.parse as in + // d6aebbad6e9b191fef141472887637ee4318438e + var fileName = patterns[i]; + var lineNumber = /:\d+$/.exec(fileName); + if (lineNumber) { + fileName = fileName.slice(0, lineNumber.index); + lineNumber = lineNumber[0].slice(1); + } + var matches = glob.sync(fileName, {cwd: cwd}); if (!matches.length && !opt_omitWarnings) { log.warn('pattern ' + patterns[i] + ' did not match any files.'); @@ -114,7 +114,7 @@ ConfigParser.resolveFilePatterns = for (var j = 0; j < matches.length; ++j) { var resolvedPath = path.resolve(cwd, matches[j]); if (lineNumber) { - resolvedPath += lineNumber; + resolvedPath += ':' + lineNumber; } resolvedFiles.push(resolvedPath); }