mocha-headless-chrome
Advanced tools
Comparing version 0.1.2 to 0.2.1
@@ -10,2 +10,2 @@ 'use strict'; | ||
runner(argv.f); | ||
runner(argv.f, argv.r); |
{ | ||
"name": "mocha-headless-chrome", | ||
"version": "0.1.2", | ||
"version": "0.2.1", | ||
"description": "Run client-side mocha tests in the command line through headless Chrome", | ||
@@ -8,3 +8,3 @@ "main": "runner.js", | ||
"scripts": { | ||
"start": "node cli" | ||
"start": "node cli -f example-page.html" | ||
}, | ||
@@ -11,0 +11,0 @@ "repository": { |
@@ -15,4 +15,10 @@ # mocha-headless-chrome | ||
Prepare the test page using [the example](example-page.html). Run `window.runMochaHeadlessChrome()` function instead `mocha.run()` [if it is available](example-page.html#L16-L20). | ||
Then run `mocha-headless-chrome` CLI and specify your test page path using `-f` parameter. | ||
Optionally you can specify the reporter name using `-r` parameter. All mocha reporters are supported. | ||
``` | ||
mocha-headless-chrome -f test-page.html | ||
mocha-headless-chrome -f test-page.html -r nyan | ||
``` |
@@ -7,5 +7,12 @@ 'use strict'; | ||
function initMocha() { | ||
function initMocha(reporter) { | ||
console.log = (console => { | ||
const log = console.log.bind(console); | ||
return (...args) => args.length ? log(...args) : log(''); | ||
})(console); | ||
window.runMochaHeadlessChrome = function() { | ||
// var MARK = '#mocha#'; | ||
@@ -23,10 +30,8 @@ // | ||
Mocha.reporters.Base.useColors = true; | ||
Mocha.reporters.Base.symbols.dot = '.'; | ||
Mocha.reporters.Base.symbols.ok = '✓'; | ||
Mocha.reporters.Base.symbols.err = '✖'; | ||
Mocha.reporters.Base.symbols.dot = '․'; | ||
Mocha.reporters.Base.symbols.comma = ','; | ||
Mocha.reporters.Base.symbols.bang = '!'; | ||
Mocha.process.browser = false; | ||
Mocha.process.stdout = { | ||
write: data => console.log('stdout:', data) | ||
}; | ||
mocha.setup({ reporter: Mocha.reporters.list }); | ||
mocha.setup({ reporter: Mocha.reporters[reporter] || Mocha.reporters.spec }); | ||
mocha.run().on('end', () => window.testsCompleted = true); | ||
@@ -36,6 +41,6 @@ }; | ||
module.exports = async (filePath) => { | ||
module.exports = async (filePath, reporter) => { | ||
const url = path.resolve(filePath); | ||
const log = []; | ||
try { | ||
@@ -50,4 +55,9 @@ | ||
page.on('console', (...args) => { | ||
//console.log('>>>>>>>>>>>>>>>>>>begin', JSON.stringify(args)); | ||
// save console.log arguments | ||
let json = JSON.stringify(args); | ||
let del = args[1] === "\u001b[2K"; | ||
let begin = args[1] === "\u001b[0G"; | ||
log.push({ json, del, begin }); | ||
// process stdout stub | ||
let isStdout = args[0] === 'stdout:'; | ||
@@ -76,9 +86,11 @@ isStdout && (args = args.slice(1)); | ||
await page.evaluateOnNewDocument(initMocha); | ||
await page.evaluateOnNewDocument(initMocha, reporter); | ||
await page.goto(`file://${url}`); | ||
await page.waitForFunction(() => window.testsCompleted); | ||
await page.waitForFunction(() => window.testsCompleted, { timeout: 60000 }); | ||
process.stdout.write('\n'); | ||
browser.close(); | ||
//log.forEach(msg => console.log(`${msg.json} = ${msg.del} == ${msg.begin}`)); | ||
} catch (err) { | ||
@@ -85,0 +97,0 @@ console.log(err); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5751
80
24