Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Gerwitz <mike.gerwitz@rtspecialty.com>2018-02-16 12:19:37 -0500
committerMike Gerwitz <mike.gerwitz@rtspecialty.com>2018-02-19 15:21:14 -0500
commit47f0f4039b9c6d4a9898714dcca4692fd8af154a (patch)
tree2b92cae5fa2c0e57b474a4652aee2da7a7358513 /progtest/bin
parent0c020b736d8d46f18e2e671d7b928e146db5572e (diff)
downloadtame-47f0f4039b9c6d4a9898714dcca4692fd8af154a.tar.gz
tame-47f0f4039b9c6d4a9898714dcca4692fd8af154a.tar.bz2
tame-47f0f4039b9c6d4a9898714dcca4692fd8af154a.zip
progtest: Initial working console runner
Diffstat (limited to 'progtest/bin')
-rw-r--r--progtest/bin/runner.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/progtest/bin/runner.js b/progtest/bin/runner.js
new file mode 100644
index 0000000..98a134e
--- /dev/null
+++ b/progtest/bin/runner.js
@@ -0,0 +1,51 @@
+/**
+ * Test case runner script
+ *
+ * Copyright (C) 2018 R-T Specialty, LLC.
+ *
+ * This file is part of TAME.
+ *
+ * TAME is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+"use strict";
+
+const program = require( process.argv[ 2 ] );
+const filename = process.argv[ 3 ];
+
+const fs = require( 'fs' );
+const yaml_reader = require( 'js-yaml' );
+
+const TestCase = require( '../src/TestCase' );
+const YamlTestReader = require( '../src/reader/YamlTestReader' );
+const ConstResolver = require( '../src/reader/ConstResolver' );
+const DateResolver = require( '../src/reader/DateResolver' );
+const TestRunner = require( '../src/TestRunner' );
+const ConsoleTestReporter = require( '../src/reporter/ConsoleTestReporter' );
+
+const runner = TestRunner(
+ ConsoleTestReporter( process.stdout ),
+ program
+);
+
+const reader = YamlTestReader
+ .use( DateResolver )
+ .use( ConstResolver( program ) )
+ ( yaml_reader, TestCase );
+
+const cases = reader.loadCases(
+ fs.readFileSync( filename, 'utf8' )
+);
+
+const results = runner.runTests( cases );