summaryrefslogtreecommitdiffstats
path: root/spec/env/runner.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/env/runner.js')
-rw-r--r--spec/env/runner.js40
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();
+ });
+}