123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const template = require('./template')
- let config
- const fs = require('fs-extra')
- const path = require('path')
- const globby = require('globby')
- const { runner } = require('mocha-headless-chrome')
- if (process.argv[2]) {
- config = require(`./${process.argv[2]}.config`)
- } else {
- config = require('./runner.config')
- }
- /**
- * Generate templates and run tests
- */
- const tests = []
- const cwd = process.cwd()
- const tmpDir = path.join(cwd, 'tmp', 'browser')
- fs.ensureDirSync(tmpDir)
- fs.copySync(path.join(cwd, 'test', 'browser', 'common.js'), path.join(tmpDir, 'common.js'))
- let numTests = 0
- let passedTests = 0
- let failedTests = 0
- /** Will run the runners in a series */
- function runSerial(tasks) {
- var result = Promise.resolve()
- start = Date.now()
- tasks.forEach(task => {
- result = result.then(result => {
- if (result && result.result && result.result.stats) {
- const stats = result.result.stats
- numTests += stats.tests
- passedTests += stats.passes
- failedTests += stats.failures
- }
- return task()
- }, err => {
- console.log(err)
- failedTests += 1
- })
- })
- return result
- }
- Object.entries(config).forEach(entry => {
- const test = entry[1]
- const paths = globby.sync(test.src)
- const templateString = template(paths, test.options.helpers, test.options.specs)
- fs.writeFileSync(path.join(cwd, test.options.outfile), templateString)
- tests.push(() => {
- const file = 'http://localhost:8081/' + test.options.outfile
- console.log(file)
- return runner({
- file,
- timeout: 3500,
- args: ['disable-web-security']
- })
- })
- })
- module.exports = () => runSerial(tests).then(() => {
- if (failedTests > 0) {
- process.stderr.write(failedTests + ' Failed, ' + passedTests + ' passed\n');
- } else {
- process.stdout.write('All Passed ' + passedTests + ' run\n');
- }
- if (failedTests) {
- process.on('exit', function() { process.reallyExit(1); });
- }
- process.exit()
- }, err => {
- process.stderr.write(err.message);
- process.exit()
- })
|