Пример #1
0
function publishTestResults(publishJUnitResults, testResultsFiles) {
  if(publishJUnitResults == 'true') {
    //check for pattern in testResultsFiles
    if(testResultsFiles.indexOf('*') >= 0 || testResultsFiles.indexOf('?') >= 0) {
      tl.debug('Pattern found in testResultsFiles parameter');
      var buildFolder = tl.getVariable('agent.buildDirectory');
      var allFiles = tl.find(buildFolder);
      var matchingTestResultsFiles = tl.match(allFiles, testResultsFiles, { matchBase: true });
    }
    else {
      tl.debug('No pattern found in testResultsFiles parameter');
      var matchingTestResultsFiles = [testResultsFiles];
    }

    if(!matchingTestResultsFiles) {
      tl.warning('No test result files matching ' + testResultsFiles + ' were found, so publishing JUnit test results is being skipped.');  
      return 0;
    }

    var tp = new tl.TestPublisher("JUnit");
    tp.publish(matchingTestResultsFiles, false, "", "");
  } 
}
var tl = require('vso-task-lib');
var fs = require('fs');
tl.debug("Starting Replace Tokens step");
// get the task vars
var filePath = tl.getPathInput("filePath", true, true);
var tokenRegex = tl.getInput("tokenRegex", true);
var files = tl.find(filePath);
if (files.length === 1) {
    var file = files[0];
    // read the file
    fs.readFile(file, 'utf8', function (err, data) {
        if (err) {
            tl.error("Could not read file " + filePath + ". Error is " + err.message);
            tl.exit(1);
        }
        var reg = new RegExp(tokenRegex, "g");
        console.info("Starting regex replacement in " + file);
        // loop through each match
        var match;
        while ((match = reg.exec(data)) !== null) {
            // find the variable value in the environment
            var varName = match[1];
            var varValue = tl.getVariable(varName);
            if (varValue === null) {
                tl.warning("... token " + varName + " does not have an environment value");
            }
            else {
                data = data.replace(match[0], varValue);
                tl.debug("... replaced token " + varName);
            }
        }
var testRunner = tl.getInput('testRunner', true);
var testResultsFiles = tl.getInput('testResultsFiles', true);
var mergeResults = tl.getInput('mergeTestResults');
var platform = tl.getInput('platform');
var config = tl.getInput('configuration');

tl.debug('testRunner: ' + testRunner);
tl.debug('testResultsFiles: ' + testResultsFiles);
tl.debug('mergeResults: ' + mergeResults);
tl.debug('platform: ' + platform);
tl.debug('config: ' + config);

//check for pattern in testResultsFiles
if(testResultsFiles.indexOf('*') >= 0 || testResultsFiles.indexOf('?') >= 0) {
  tl.debug('Pattern found in testResultsFiles parameter');
  var buildFolder = tl.getVariable('agent.buildDirectory');
  var allFiles = tl.find(buildFolder);
  var matchingTestResultsFiles = tl.match(allFiles, testResultsFiles, { matchBase: true });
}
else {
  tl.debug('No pattern found in testResultsFiles parameter');
  var matchingTestResultsFiles = [testResultsFiles];
}

if(!matchingTestResultsFiles) {
  tl.warning('No test result files matching ' + testResultsFiles + ' were found.');  
  tl.exit(0);
}

var tp = new tl.TestPublisher(testRunner);
tp.publish(matchingTestResultsFiles, mergeResults, platform, config);