in Tests-Legacy/L0/PublishTestResults/_suite.ts [12:174]
describe('Publish Test Results Suite', function () {
this.timeout(10000);
before((done) => {
// init here
setResponseFile('publishTestResultResponses.json');
done();
});
after(function () {
//do nothing
});
it('Publish test results with resultFiles filter that does not match with any files', (done) => {
setResponseFile('response.json');
let tr = new trm.TaskRunner('PublishTestResults');
tr.setInput('testRunner', 'JUnit');
tr.setInput('testResultsFiles', '/invalid/*pattern');
tr.run()
.then(() => {
assert(tr.stderr.length == 0, 'should not have written to stderr. error: ' + tr.stderr);
assert(tr.succeeded, 'task should have succeeded');
assert(tr.invokedToolCount == 0, 'should exit before running PublishTestResults');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
it('Publish test results with resultFiles filter that matches with some files', (done) => {
setResponseFile('response.json');
let tr = new trm.TaskRunner('PublishTestResults');
let pattern = ('**\\TEST-*.xml');
tr.setInput('testRunner', 'JUnit');
tr.setInput('testResultsFiles', pattern);
tr.setInput('mergeTestResults', 'true');
tr.run()
.then(() => {
assert(tr.stderr.length == 0, 'should not have written to stderr. error: ' + tr.stderr);
assert(tr.succeeded, 'task should have succeeded');
assert(tr.stdout.search(/##vso\[results.publish type=JUnit;mergeResults=true;resultFiles=/) >= 0, 'should publish test results.');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
it('Publish test results with resultFiles as file path', (done) => {
setResponseFile('response.json');
let tr = new trm.TaskRunner('PublishTestResults');
let pattern = ('TEST.xml');
tr.setInput('testRunner', 'JUnit');
tr.setInput('testResultsFiles', pattern);
tr.run()
.then(() => {
assert(tr.stderr.length == 0, 'should not have written to stderr. error: ' + tr.stderr);
assert(tr.succeeded, 'task should have succeeded');
assert(tr.stdout.search(/##vso\[results.publish type=JUnit;resultFiles=/) >= 0, 'should publish test results.');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
it('Publish test results when test result files input is not provided', (done) => {
setResponseFile('response.json');
let tr = new trm.TaskRunner('PublishTestResults');
tr.setInput('testRunner', 'Junit');
tr.run()
.then(() => {
assert(tr.resultWasSet, 'task should have set a result');
assert(tr.stderr.length > 0, 'should have written to stderr');
assert(tr.stdErrContained('Input required: testResultsFiles'));
assert(tr.failed, 'task should have failed');
assert(tr.invokedToolCount == 0, 'should exit before running PublishTestResults');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
it('Publish test results when test runner type input is not provided', (done) => {
setResponseFile('response.json');
let tr = new trm.TaskRunner('PublishTestResults');
tr.setInput('testResultsFiles', '**\\TEST-*.xml');
tr.run()
.then(() => {
assert(tr.resultWasSet, 'task should have set a result');
assert(tr.stderr.length > 0, 'should have written to stderr');
assert(tr.stdErrContained('Input required: testRunner'));
assert(tr.failed, 'task should have failed');
assert(tr.invokedToolCount == 0, 'should exit before running PublishTestResults');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
it('Publish test results when number of Test Results files is greater than threshold', (done) => {
setResponseFile('response.json');
const tr = new trm.TaskRunner('PublishTestResults');
tr.setInput('testResultsFiles', '**\\n-files*.xml');
tr.setInput('testRunner', 'Junit');
tr.setInput('mergeTestResults', 'false');
tr.run()
.then(() => {
assert(tr.stderr.length == 0, 'should not have written to stderr. error: ' + tr.stderr);
assert(tr.succeeded, 'task should have succeeded');
assert(tr.stdout.search(/##vso\[results.publish type=Junit;mergeResults=true/) >= 0, 'mergeResults should be set to true');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
it('Publish test results when number of Test Results files is less than threshold', (done) => {
setResponseFile('response.json');
const tr = new trm.TaskRunner('PublishTestResults');
tr.setInput('testResultsFiles', '**\\TEST-*.xml');
tr.setInput('testRunner', 'Junit');
tr.setInput('mergeTestResults', 'false');
tr.run()
.then(() => {
assert(tr.stderr.length == 0, 'should not have written to stderr. error: ' + tr.stderr);
assert(tr.succeeded, 'task should have succeeded');
assert(tr.stdout.search(/##vso\[results.publish type=Junit;mergeResults=false/) >= 0, 'should not override mergeResults');
done();
})
.fail((err) => {
console.log(tr.stdout);
done(err);
});
});
});