runner.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env node
  2. // Runs Specs in NodeJS
  3. var puts = require('sys').puts;
  4. var options = require('./Helpers/RunnerOptions').parseOptions(process.argv[2]);
  5. if (!options) return;
  6. // Initialize
  7. var loader = require('./Helpers/Loader');
  8. var SpecLoader = loader.SpecLoader(require('../Configuration').Configuration, options);
  9. SpecLoader.setEnvName('nodejs');
  10. // set method to require all the sourcefiles and append the objects to this object
  11. var self = this;
  12. var append = function(original){
  13. for (var i = 1, l = arguments.length; i < l; i++){
  14. var extended = arguments[i] || {};
  15. for (var key in extended) original[key] = extended[key];
  16. }
  17. return original;
  18. };
  19. SpecLoader.setSourceLoader(function(object, base){
  20. for (var j = 0; j < object.length; j++){
  21. if (object[j] == 'Slick/Slick.Parser'){
  22. Slick = require('../' + (base || '') + object[j]).Slick;
  23. append(self, Slick);
  24. } else {
  25. append(self, require('../' + (base || '') + object[j]));
  26. }
  27. }
  28. });
  29. // Set method to get all the spec files
  30. var specs = [];
  31. SpecLoader.setSpecLoader(function(object, base){
  32. for (var j = 0; j < object.length; j++)
  33. specs.push(__dirname + '/../' + (base || '') + object[j]);
  34. });
  35. // Run loader
  36. SpecLoader.run();
  37. // Fire jasmine
  38. require.paths.push('./Jasmine-Node/lib');
  39. var jasmine = require('jasmine'),
  40. sys = require('sys');
  41. for(var key in jasmine)
  42. global[key] = jasmine[key];
  43. require('./Helpers/JSSpecToJasmine');
  44. var reporter = require('reporters/' + (options.reporter || 'console')).Reporter;
  45. reporter.done = function(runner, log){
  46. process.exit(runner.results().failedCount);
  47. };
  48. jasmine.runSpecs(specs, reporter);