@travetto/test
Version:
Declarative test framework
46 lines (38 loc) • 1.06 kB
text/typescript
import { Env, RuntimeIndex } from '@travetto/runtime';
import { CliCommand, CliUtil } from '@travetto/cli';
import { IsPrivate } from '@travetto/schema';
import { runTests, selectConsumer } from './bin/run.ts';
/** Direct test invocation */
()
()
export class TestDirectCommand {
format: string = 'tap';
/**
* Format options
* @alias o
*/
formatOptions?: string[];
async preValidate(): Promise<void> {
await selectConsumer(this);
}
preMain(): void {
Env.TRV_ROLE.set('test');
Env.TRV_LOG_PLAIN.set(true);
Env.TRV_LOG_TIME.clear();
}
main(importOrFile: string, clsId?: string, methodsNames: string[] = []): Promise<void> {
// Resolve to import
const importPath = RuntimeIndex.getFromImportOrSource(importOrFile)?.import!;
return runTests(
{
consumer: this.format,
consumerOptions: CliUtil.readExtendedOptions(this.formatOptions),
},
{
import: importPath,
classId: clsId,
methodNames: methodsNames,
}
);
}
}