(files)
| 66 | } |
| 67 | |
| 68 | async function printTests(files) { |
| 69 | const { default: figures } = await import('figures') |
| 70 | const { default: colors } = await import('chalk') |
| 71 | |
| 72 | output.print(output.styles.debug(`Tests from ${store.codeceptDir}:`)) |
| 73 | output.print() |
| 74 | |
| 75 | const mocha = Container.mocha() |
| 76 | mocha.files = files |
| 77 | mocha.loadFiles() |
| 78 | |
| 79 | let numOfTests = 0 |
| 80 | let numOfSuites = 0 |
| 81 | let outputString = '' |
| 82 | const filterBy = process.env.grep |
| 83 | |
| 84 | let filterRegex |
| 85 | if (filterBy) { |
| 86 | try { |
| 87 | filterRegex = new RegExp(filterBy, 'i') // Case-insensitive matching |
| 88 | } catch (err) { |
| 89 | console.error(`Invalid grep pattern: ${filterBy}`) |
| 90 | process.exit(1) |
| 91 | } |
| 92 | } |
| 93 | |
| 94 | for (const suite of mocha.suite.suites) { |
| 95 | const suiteMatches = filterRegex ? filterRegex.test(suite.title) : true |
| 96 | let suiteHasMatchingTests = false |
| 97 | |
| 98 | if (suiteMatches) { |
| 99 | outputString += `${colors.white.bold(suite.title)} -- ${output.styles.log(suite.file || '')}\n` |
| 100 | suiteHasMatchingTests = true |
| 101 | numOfSuites++ |
| 102 | } |
| 103 | |
| 104 | for (const test of suite.tests) { |
| 105 | const testMatches = filterRegex ? filterRegex.test(test.title) : true |
| 106 | |
| 107 | if (testMatches) { |
| 108 | if (!suiteMatches && !suiteHasMatchingTests) { |
| 109 | outputString += `${colors.white.bold(suite.title)} -- ${output.styles.log(suite.file || '')}\n` |
| 110 | suiteHasMatchingTests = true |
| 111 | numOfSuites++ |
| 112 | } |
| 113 | |
| 114 | numOfTests++ |
| 115 | outputString += ` ${output.styles.scenario(figures.checkboxOff)} ${test.title}\n` |
| 116 | } |
| 117 | } |
| 118 | } |
| 119 | |
| 120 | output.print(removeDuplicates(outputString)) |
| 121 | output.print('') |
| 122 | output.success(` Total: ${numOfSuites} suites | ${numOfTests} tests `) |
| 123 | printFooter() |
| 124 | process.exit(0) |
| 125 | } |
no test coverage detected