diff options
Diffstat (limited to 'spec/env/runner.js')
-rw-r--r-- | spec/env/runner.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/env/runner.js b/spec/env/runner.js new file mode 100644 index 0000000..919f0ae --- /dev/null +++ b/spec/env/runner.js @@ -0,0 +1,40 @@ +var fs = require('fs'), + Mocha = require('mocha'), + path = require('path'); + +var errors = 0, + testDir = path.dirname(__dirname), + grep = process.argv[2]; + +var files = fs.readdirSync(testDir) + .filter(function(name) { return (/.*\.js$/).test(name); }) + .map(function(name) { return testDir + '/' + name; }); + +run('./node', function() { + run('./browser', function() { + run('./runtime', function() { + process.exit(errors); + }); + }); +}); + + +function run(env, callback) { + var mocha = new Mocha(); + mocha.ui('bdd'); + mocha.files = files.slice(); + if (grep) { + mocha.grep(grep); + } + + files.forEach(function(name) { + delete require.cache[name]; + }); + + console.log('Running env: ' + env); + require(env); + mocha.run(function(errorCount) { + errors += errorCount; + callback(); + }); +} |