itaywol/testless

GitHub: itaywol/testless

testless 通过静态 AST 分析代码改动与函数级依赖图,智能筛选出受影响的测试子集,帮助开发者显著减少不必要的测试运行时间。

Stars: 0 | Forks: 0


testless

将你的测试时间缩减至最低。通过分析代码而非覆盖率,从 500 个测试中只运行 5 个。

[![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/itaywol/testless/actions/workflows/ci.yml) [![crates.io](https://img.shields.io/crates/v/testless.svg)](https://crates.io/crates/testless) [![npm](https://img.shields.io/npm/v/testless-cli)](https://www.npmjs.com/package/testless-cli) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

testless.itaywol.tools

![demo](https://static.pigsec.cn/wp-content/uploads/repos/cas/7f/7fa2ccc232e8a73925f35f250c0f36c521c8e80c2d3d4ffb14900dd85ddbbb30.gif) testless 使用 tree-sitter 将你的代码库解析为函数级别的图,进行结构化的 diff(忽略注释和格式差异),并遍历该图以找出改动可能破坏的所有测试。它会输出你的测试运行器自带的 CLI 调用命令,可直接执行。 **筛选出的测试范围始终是真正受影响测试的超集。** testless 会扩大范围而非盲目猜测,并且绝不会静默跳过任何可能失败的测试。 ## 安装 | 生态系统 | 命令 | |---|---| | JS / TS | `npm i -D testless-cli` (可执行文件: `testless`) | | Go | `curl -fsSL https://testless.itaywol.tools/install.sh \| sh` | | Rust | `cargo binstall testless` 或 `cargo install testless` | 预编译二进制文件请见 [Releases](https://github.com/itaywol/testless/releases)。Nix flake 仓库:`nix develop`。 ## 使用 ``` testless index # build the graph (.testless/) testless select --from origin/main # tests impacted by your changes testless select --from origin/main --format args # runnable vitest / go test / cargo test lines ``` 通过管道传输时输出 JSON,在 TTY 上输出人类可读的文本。当回退到运行所有测试时,`--format args` 将不会输出内容并以退出码 2 结束,因此你可以根据退出码进行分支处理: ``` testless select --from origin/main --format args > cmds.txt || RUN_ALL=1 ``` ## 语言 TypeScript / JavaScript (vitest, jest `-t` 匹配模式) · Go (`go test -run`) · Rust (`cargo test`) 添加一种新语言大约只需要一个插件文件:请参阅 [CONTRIBUTING](CONTRIBUTING.md)。 ## 状态 这是一个年轻的项目。筛选引擎在上述三种语言上均已实现端到端运行;精确度会在每次发布中逐步提升。路线图位于 [issues](https://github.com/itaywol/testless/issues)。 [MIT](LICENSE)
标签:LNA, SOC Prime, 云安全监控, 可视化界面, 开发工具, 日志审计, 暗色界面, 测试工具, 测试影响分析, 通知系统, 静态分析