diff options
Diffstat (limited to 'src/scenario/Runner.js')
| -rw-r--r-- | src/scenario/Runner.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/scenario/Runner.js b/src/scenario/Runner.js index eb9d0320..f3211fd2 100644 --- a/src/scenario/Runner.js +++ b/src/scenario/Runner.js @@ -163,9 +163,13 @@ angular.scenario.Runner.prototype.createSpecRunner_ = function(scope) { */ angular.scenario.Runner.prototype.run = function(application) { var self = this; - var $root = angular.scope(this); + var $root = angular.scope(); + angular.extend($root, this); + angular.forEach(angular.scenario.Runner.prototype, function(fn, name) { + $root[name] = angular.bind(self, fn); + }); $root.application = application; - this.emit('RunnerBegin'); + $root.emit('RunnerBegin'); asyncForEach(this.rootDescribe.getSpecs(), function(spec, specDone) { var dslCache = {}; var runner = self.createSpecRunner_($root); @@ -175,7 +179,7 @@ angular.scenario.Runner.prototype.run = function(application) { angular.forEach(angular.scenario.dsl, function(fn, key) { self.$window[key] = function() { var line = callerFile(3); - var scope = angular.scope(runner); + var scope = runner.$new(); // Make the dsl accessible on the current chain scope.dsl = {}; @@ -200,7 +204,10 @@ angular.scenario.Runner.prototype.run = function(application) { return scope.dsl[key].apply(scope, arguments); }; }); - runner.run(spec, specDone); + runner.run(spec, function() { + runner.$destroy(); + specDone.apply(this, arguments); + }); }, function(error) { if (error) { |
