UNPKG

wdio-workflo-allure-reporter

Version:

This is a customized version of wdio-workflo-allure-reporter for use with workflo framework.

72 lines (61 loc) 1.69 kB
import fs from 'fs' import path from 'path' import del from 'del' import Launcher from 'webdriverio/build/lib/launcher' import cheerio from 'cheerio' const resultsDir = path.join(__dirname, '../.allure-results') export function getResults () { return getResultFiles('xml').map((file) => { return cheerio.load(fs.readFileSync(path.join(resultsDir, file), 'utf-8')) }) } export function getResultFiles (patterns) { if (!Array.isArray(patterns)) { patterns = [patterns] } return fs.readdirSync(resultsDir).filter((file) => patterns.some(pattern => file.endsWith('.' + pattern))) } export function clean () { return del(resultsDir) } export function run (specs) { disableOutput() const launcher = new Launcher('./test/fixtures/wdio.conf.js', { specs: specs.map(spec => `./test/fixtures/specs/${spec}.js`) }) return launcher.run().then(() => { enableOutput() return getResults() }) } let logs, originalConsole function disableOutput () { if (process.env.FULL_OUTPUT) { return } const mockLog = (type) => (...message) => { logs[type].push(message.join(' ')) } logs = { log: [], warn: [], error: [] } originalConsole = { log: console.log, warn: console.warn, error: console.error } console.log = mockLog('log') console.warn = mockLog('warn') console.error = mockLog('error') } function enableOutput () { if (process.env.FULL_OUTPUT) { return } console.log = originalConsole.log console.warn = originalConsole.warn console.error = originalConsole.error }