mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-05 05:34:43 +00:00
Have iit have higher priority then ddesrcibe
This commit is contained in:
parent
498ad0a3be
commit
b2dc2ce0b5
1 changed files with 32 additions and 25 deletions
|
|
@ -6,14 +6,14 @@
|
||||||
var rootDescribes = new Describes(window);
|
var rootDescribes = new Describes(window);
|
||||||
var describePath = [];
|
var describePath = [];
|
||||||
rootDescribes.collectMode();
|
rootDescribes.collectMode();
|
||||||
|
|
||||||
var jasmineTest = TestCase('Jasmine Adapter Tests', null, 'jasmine test case');
|
var jasmineTest = TestCase('Jasmine Adapter Tests', null, 'jasmine test case');
|
||||||
|
|
||||||
var jasminePlugin = {
|
var jasminePlugin = {
|
||||||
name:'jasmine',
|
name:'jasmine',
|
||||||
runTestConfiguration: function(testRunConfiguration, onTestDone, onTestRunConfigurationComplete){
|
runTestConfiguration: function(testRunConfiguration, onTestDone, onTestRunConfigurationComplete){
|
||||||
if (testRunConfiguration.testCaseInfo_.template_ !== jasmineTest) return;
|
if (testRunConfiguration.testCaseInfo_.template_ !== jasmineTest) return;
|
||||||
|
|
||||||
var jasmineEnv = jasmine.currentEnv_ = new jasmine.Env();
|
var jasmineEnv = jasmine.currentEnv_ = new jasmine.Env();
|
||||||
rootDescribes.playback();
|
rootDescribes.playback();
|
||||||
var specLog = jstestdriver.console.log_ = [];
|
var specLog = jstestdriver.console.log_ = [];
|
||||||
|
|
@ -45,24 +45,24 @@
|
||||||
if (!resultItems[i].passed()) {
|
if (!resultItems[i].passed()) {
|
||||||
state = resultItems[i].message.match(/AssertionError:/) ? 'error' : 'failed';
|
state = resultItems[i].message.match(/AssertionError:/) ? 'error' : 'failed';
|
||||||
messages.push({
|
messages.push({
|
||||||
message: resultItems[i].toString(),
|
message: resultItems[i].toString(),
|
||||||
name: resultItems[i].trace.name,
|
name: resultItems[i].trace.name,
|
||||||
stack: formatStack(resultItems[i].trace.stack)
|
stack: formatStack(resultItems[i].trace.stack)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onTestDone(
|
onTestDone(
|
||||||
new jstestdriver.TestResult(
|
new jstestdriver.TestResult(
|
||||||
suite.getFullName(),
|
suite.getFullName(),
|
||||||
spec.description,
|
spec.description,
|
||||||
state,
|
state,
|
||||||
jstestdriver.angular.toJson(messages),
|
jstestdriver.angular.toJson(messages),
|
||||||
specLog.join('\n'),
|
specLog.join('\n'),
|
||||||
end - start));
|
end - start));
|
||||||
},
|
},
|
||||||
|
|
||||||
reportSuiteResults: function(suite) {},
|
reportSuiteResults: function(suite) {},
|
||||||
|
|
||||||
reportRunnerResults: function(runner) {
|
reportRunnerResults: function(runner) {
|
||||||
onTestRunConfigurationComplete();
|
onTestRunConfigurationComplete();
|
||||||
}
|
}
|
||||||
|
|
@ -93,13 +93,17 @@
|
||||||
var describes = {};
|
var describes = {};
|
||||||
var beforeEachs = {};
|
var beforeEachs = {};
|
||||||
var afterEachs = {};
|
var afterEachs = {};
|
||||||
var exclusive;
|
// Here we store:
|
||||||
|
// 0: everyone runs
|
||||||
|
// 1: run everything under ddescribe
|
||||||
|
// 2: run only iits (ignore ddescribe)
|
||||||
|
var exclusive = 0;
|
||||||
var collectMode = true;
|
var collectMode = true;
|
||||||
intercept('describe', describes);
|
intercept('describe', describes);
|
||||||
intercept('xdescribe', describes);
|
intercept('xdescribe', describes);
|
||||||
intercept('beforeEach', beforeEachs);
|
intercept('beforeEach', beforeEachs);
|
||||||
intercept('afterEach', afterEachs);
|
intercept('afterEach', afterEachs);
|
||||||
|
|
||||||
function intercept(functionName, collection){
|
function intercept(functionName, collection){
|
||||||
window[functionName] = function(desc, fn){
|
window[functionName] = function(desc, fn){
|
||||||
if (collectMode) {
|
if (collectMode) {
|
||||||
|
|
@ -112,11 +116,15 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
window.ddescribe = function(name, fn){
|
window.ddescribe = function(name, fn){
|
||||||
exclusive = true;
|
if (exclusive < 1) {
|
||||||
console.log('ddescribe', name);
|
exclusive = 1; // run ddescribe only
|
||||||
|
}
|
||||||
window.describe(name, function(){
|
window.describe(name, function(){
|
||||||
var oldIt = window.it;
|
var oldIt = window.it;
|
||||||
window.it = window.iit;
|
window.it = function(name, fn){
|
||||||
|
fn.exclusive = 1; // run anything under ddescribe
|
||||||
|
jasmine.getEnv().it(name, fn);
|
||||||
|
};
|
||||||
try {
|
try {
|
||||||
fn.call(this);
|
fn.call(this);
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -125,34 +133,33 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
window.iit = function(name, fn){
|
window.iit = function(name, fn){
|
||||||
exclusive = fn.exclusive = true;
|
exclusive = fn.exclusive = 2; // run only iits
|
||||||
console.log(fn);
|
|
||||||
jasmine.getEnv().it(name, fn);
|
jasmine.getEnv().it(name, fn);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
this.collectMode = function() {
|
this.collectMode = function() {
|
||||||
collectMode = true;
|
collectMode = true;
|
||||||
exclusive = false;
|
exclusive = 0; // run everything
|
||||||
};
|
};
|
||||||
this.playback = function(){
|
this.playback = function(){
|
||||||
collectMode = false;
|
collectMode = false;
|
||||||
playback(beforeEachs);
|
playback(beforeEachs);
|
||||||
playback(afterEachs);
|
playback(afterEachs);
|
||||||
playback(describes);
|
playback(describes);
|
||||||
|
|
||||||
function playback(set) {
|
function playback(set) {
|
||||||
for ( var name in set) {
|
for ( var name in set) {
|
||||||
set[name]();
|
set[name]();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.isExclusive = function(spec) {
|
this.isExclusive = function(spec) {
|
||||||
if (exclusive) {
|
if (exclusive) {
|
||||||
var blocks = spec.queue.blocks;
|
var blocks = spec.queue.blocks;
|
||||||
for ( var i = 0; i < blocks.length; i++) {
|
for ( var i = 0; i < blocks.length; i++) {
|
||||||
if (blocks[i].func.exclusive) {
|
if (blocks[i].func.exclusive >= exclusive) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -161,7 +168,7 @@
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
})(window);
|
})(window);
|
||||||
|
|
||||||
// Patch Jasmine for proper stack traces
|
// Patch Jasmine for proper stack traces
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue