Skip to content
狼叔 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");
}
Clone this wiki locally