UNPKG

@travetto/test

Version:

Declarative test framework

43 lines (35 loc) 1.14 kB
import { CliCommand } from '@travetto/cli'; import { Env, Runtime, describeFunction } from '@travetto/runtime'; import { SuiteRegistry } from '../src/registry/suite.ts'; import { RunnerUtil } from '../src/execute/util.ts'; @CliCommand({ hidden: true }) export class TestDigestCommand { output: 'json' | 'text' = 'text'; preMain(): void { Env.TRV_ROLE.set('test'); Env.DEBUG.set(false); } async main(globs: string[] = ['**/*']) { // Load all tests for await (const imp of await RunnerUtil.getTestImports(globs)) { try { await Runtime.importFrom(imp); } catch (err) { console.error('Failed to import', imp, err); } } await SuiteRegistry.init(); const suites = SuiteRegistry.getClasses(); const all = suites .map(c => SuiteRegistry.get(c)) .filter(c => !describeFunction(c.class).abstract) .flatMap(c => c.tests); if (this.output === 'json') { console.log(JSON.stringify(all)); } else { for (const item of all) { console.log(`${item.classId}#${item.methodName}`, item.tags?.join('|') ?? ''); } } } }