Index: lib/src/prism/tests/run.js |
diff --git a/lib/src/prism/tests/run.js b/lib/src/prism/tests/run.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a28350d2a45bf9c0e1f72909ef19479cf5572320 |
--- /dev/null |
+++ b/lib/src/prism/tests/run.js |
@@ -0,0 +1,37 @@ |
+"use strict"; |
+ |
+var TestDiscovery = require("./helper/test-discovery"); |
+var TestCase = require("./helper/test-case"); |
+var path = require("path"); |
+var argv = require("yargs").argv; |
+ |
+var testSuite; |
+if (argv.language) { |
+ testSuite = TestDiscovery.loadSomeTests(__dirname + "/languages", argv.language); |
+} else { |
+ // load complete test suite |
+ testSuite = TestDiscovery.loadAllTests(__dirname + "/languages"); |
+} |
+ |
+// define tests for all tests in all languages in the test suite |
+for (var language in testSuite) { |
+ if (!testSuite.hasOwnProperty(language)) { |
+ continue; |
+ } |
+ |
+ (function (language, testFiles) { |
+ describe("Testing language '" + language + "'", function () { |
+ testFiles.forEach( |
+ function (filePath) { |
+ var fileName = path.basename(filePath, path.extname(filePath)); |
+ |
+ it("– should pass test case '" + fileName + "'", |
+ function () { |
+ TestCase.runTestCase(language, filePath); |
+ } |
+ ); |
+ } |
+ ); |
+ }); |
+ })(language, testSuite[language]); |
+} |