mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-22 09:30:28 +00:00
expose e2e test results
This commit is contained in:
parent
b129a1094e
commit
70c3dc8166
2 changed files with 44 additions and 4 deletions
|
|
@ -5,6 +5,7 @@ angular.scenario.Runner = function(scope, jQuery){
|
|||
var self = scope.$scenario = this;
|
||||
this.scope = scope;
|
||||
this.jQuery = jQuery;
|
||||
this.scope.$testrun = {done: false, results: []};
|
||||
|
||||
var specs = this.specs = {};
|
||||
var path = [];
|
||||
|
|
@ -40,7 +41,7 @@ angular.scenario.Runner = function(scope, jQuery){
|
|||
self.currentSpec = null;
|
||||
};
|
||||
this.logger = function returnNoop(){
|
||||
return extend(returnNoop, {close:noop, fail:noop});;
|
||||
return extend(returnNoop, {close:noop, fail:noop});
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -99,6 +100,8 @@ angular.scenario.Runner.prototype = {
|
|||
var next = specNames.shift();
|
||||
if(next) {
|
||||
self.execute(next, callback);
|
||||
} else {
|
||||
self.scope.$testrun.done = true;
|
||||
}
|
||||
};
|
||||
callback();
|
||||
|
|
@ -111,6 +114,7 @@ angular.scenario.Runner.prototype = {
|
|||
execute: function(name, callback) {
|
||||
var spec = this.specs[name],
|
||||
self = this,
|
||||
stepsDone = [],
|
||||
result = {
|
||||
passed: false,
|
||||
failed: false,
|
||||
|
|
@ -143,15 +147,23 @@ angular.scenario.Runner.prototype = {
|
|||
if (step) {
|
||||
spec.nextStepIndex ++;
|
||||
result.log = stepLogger('step', step.name);
|
||||
stepsDone.push(step.name);
|
||||
try {
|
||||
step.fn.call(specThis, next);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
result.fail(e);
|
||||
self.scope.$testrun.results.push(
|
||||
{name: name, passed: false, error: e, steps: stepsDone});
|
||||
done();
|
||||
}
|
||||
} else {
|
||||
result.passed = !result.failed;
|
||||
self.scope.$testrun.results.push({
|
||||
name: name,
|
||||
passed: !result.failed,
|
||||
error: result.error,
|
||||
steps: stepsDone});
|
||||
done();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -148,8 +148,14 @@ describe('Runner', function(){
|
|||
it('should handle exceptions in a step', function(){
|
||||
$scenario.specs['spec'] = {
|
||||
steps: [
|
||||
{name: 'first step', fn: function(done) {
|
||||
done();
|
||||
}},
|
||||
{name:'error', fn:function(done) {
|
||||
throw "MyError";
|
||||
}},
|
||||
{name: 'should not execute', fn: function(done) {
|
||||
done();
|
||||
}}
|
||||
]
|
||||
};
|
||||
|
|
@ -160,12 +166,17 @@ describe('Runner', function(){
|
|||
expect(spec.result.failed).toEqual(true);
|
||||
expect(spec.result.finished).toEqual(true);
|
||||
expect(spec.result.error).toEqual("MyError");
|
||||
expect(scenario.$testrun.results).toEqual([{
|
||||
name: 'spec',
|
||||
passed: false,
|
||||
error: 'MyError',
|
||||
steps: ['first step', 'error']}]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('run', function(){
|
||||
var next;
|
||||
it('should execute all specs', function(){
|
||||
beforeEach(function() {
|
||||
Describe('d1', function(){
|
||||
It('it1', function(){ $scenario.addStep('s1', logger('s1,')); });
|
||||
It('it2', function(){
|
||||
|
|
@ -177,13 +188,30 @@ describe('Runner', function(){
|
|||
It('it3', function(){ $scenario.addStep('s3', logger('s3,')); });
|
||||
It('it4', function(){ $scenario.addStep('s4', logger('s4,')); });
|
||||
});
|
||||
|
||||
});
|
||||
it('should execute all specs', function(){
|
||||
$scenario.run(body);
|
||||
|
||||
expect(log).toEqual('s1,s2,');
|
||||
next();
|
||||
expect(log).toEqual('s1,s2,s3,s4,');
|
||||
|
||||
});
|
||||
it('should publish done state and results as tests are run', function() {
|
||||
expect(scenario.$testrun.done).toBeFalsy();
|
||||
expect(scenario.$testrun.results).toEqual([]);
|
||||
$scenario.run(body);
|
||||
expect(scenario.$testrun.done).toBeFalsy();
|
||||
expect(scenario.$testrun.results).toEqual([
|
||||
{name: 'd1: it it1', passed: true, steps: ['s1']}
|
||||
]);
|
||||
next();
|
||||
expect(scenario.$testrun.done).toBeTruthy();
|
||||
expect(scenario.$testrun.results).toEqual([
|
||||
{name: 'd1: it it1', passed: true, steps: ['s1']},
|
||||
{name: 'd1: it it2', passed: true, steps: ['s2', 's2.2']},
|
||||
{name: 'd2: it it3', passed: true, steps: ['s3']},
|
||||
{name: 'd2: it it4', passed: true, steps: ['s4']}
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue