UNPKG

1.69 kBJavaScriptView Raw
1import fs from 'fs'
2import path from 'path'
3import del from 'del'
4import Launcher from 'webdriverio/build/lib/launcher'
5import cheerio from 'cheerio'
6
7const resultsDir = path.join(__dirname, '../.allure-results')
8
9export function getResults () {
10 return getResultFiles('xml').map((file) => {
11 return cheerio.load(fs.readFileSync(path.join(resultsDir, file), 'utf-8'))
12 })
13}
14
15export function getResultFiles (patterns) {
16 if (!Array.isArray(patterns)) {
17 patterns = [patterns]
18 }
19 return fs.readdirSync(resultsDir).filter((file) =>
20 patterns.some(pattern => file.endsWith('.' + pattern)))
21}
22
23export function clean () {
24 return del(resultsDir)
25}
26
27export function run (specs) {
28 disableOutput()
29
30 const launcher = new Launcher('./test/fixtures/wdio.conf.js', {
31 specs: specs.map(spec => `./test/fixtures/specs/${spec}.js`)
32 })
33
34 return launcher.run().then(() => {
35 enableOutput()
36 return getResults()
37 })
38}
39
40let logs, originalConsole
41
42function disableOutput () {
43 if (process.env.FULL_OUTPUT) {
44 return
45 }
46 const mockLog = (type) => (...message) => {
47 logs[type].push(message.join(' '))
48 }
49 logs = {
50 log: [],
51 warn: [],
52 error: []
53 }
54 originalConsole = {
55 log: console.log,
56 warn: console.warn,
57 error: console.error
58 }
59 console.log = mockLog('log')
60 console.warn = mockLog('warn')
61 console.error = mockLog('error')
62}
63
64function enableOutput () {
65 if (process.env.FULL_OUTPUT) {
66 return
67 }
68 console.log = originalConsole.log
69 console.warn = originalConsole.warn
70 console.error = originalConsole.error
71}