-
Notifications
You must be signed in to change notification settings - Fork 7
狼叔 edited this page Oct 11, 2022
·
1 revision
1、通过策略模式实现,默认参数是UvuStrategy
2、解决目录加载问题,当执行某个目录下面的测试的时候,首先深度优先遍历出文件,然后多个文件夹里内容合并,这种方式让代码更优雅,就是rest参数的部分。
3、为了更好的性能,测试部分使用uvu,即context.runTsTestFiles,性能是极好的。
4、最终实现了在ts里编写junit一样的测试。
5、通过debug模块进行调试,算行业最佳实践了
/**
* for api invoke (use ts-node)
*
* run([path.resolve(process.cwd(), "./tests/")])
* run([path.resolve(process.cwd(), "./tests/"),path.resolve(process.cwd(), "./tests/test.ts")])
*/
export function run(rest: any, strategy: IStrategy = new UvuStrategy()) {
debug("run With UvuStrategy");
console.time("run ts");
// set context use default strategy
const context = new Context(strategy);
// get all file from rest(file or folder)
const files = getFiles(rest);
// run tests
context.runTsTestFiles(files);
// time statistics
console.timeEnd("run ts");
}