
Security News
Feross on TBPN: How North Korea Hijacked Axios
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.
testez-componion-node-cli
Advanced tools
TypeScript 版本的 TestEZ Companion CLI,用于从命令行运行 Roblox 测试。
# 安装依赖
pnpm install
# 构建项目
pnpm build
# 运行开发版本
pnpm dev
# 构建并运行
pnpm build
pnpm start
testez-companion.toml 配置文件存在# 基本用法
pnpm dev # 开发模式
pnpm start # 生产模式 (需要先 build)
# 指定特定游戏名称(避免多场景冲突)
pnpm dev -- -g "MyGameName" # 只处理指定名称的游戏
pnpm dev -- --game-name "MyGameName"
# 使用 Rojo 配置文件
pnpm dev -- -r "my-project.json" # 从指定 Rojo 配置读取游戏名称
pnpm dev -- --rojo-config "path/to/config.json"
# 自定义测试路径(覆盖配置文件)
pnpm dev -- -p "game/ServerStorage/Tests" "game/ReplicatedStorage/Tests"
pnpm dev -- --paths "game/ServerStorage/Tests" "game/ReplicatedStorage/Tests"
# 测试名称过滤
pnpm dev -- -n "UserService" # 只运行名称包含 "UserService" 的测试
pnpm dev -- --test-name "Database" # 只运行名称包含 "Database" 的测试
# 输出选项
pnpm dev -- --only-print-failures # 只显示失败的测试
# 组合使用示例
pnpm dev -- -g "MyGame" --only-print-failures
pnpm dev -- -r "production.project.json" --only-print-failures
pnpm dev -- -n "UserService" --only-print-failures
| 参数 | 短参数 | 说明 | 示例 |
|---|---|---|---|
--game-name | -g | 指定要处理的游戏名称 | -g "MyGame" |
--rojo-config | -r | Rojo 配置文件路径 | -r "default.project.json" |
--paths | -p | 自定义测试路径(可多个) | -p "path1" "path2" |
--test-name | -n | 只运行名称包含此模式的测试 | -n "UserService" |
--only-print-failures | 无 | 只显示失败的测试 | --only-print-failures |
-g 和 -r 参数不能同时使用-n/--test-name 参数允许你只运行名称包含指定模式的测试。这对于:
-n "UserService"-n "Database"-n "UI"模式匹配示例:
-n "User" - 匹配所有包含 "User" 的测试(如 "UserService", "UserManager")-n "^User" - 匹配以 "User" 开头的测试-n "Test$" - 匹配以 "Test" 结尾的测试CLI 启动时会自动执行以下步骤:
scripts/generate-project-info.js 生成项目信息testez-companion.toml 配置文件当 Roblox Studio 尝试连接时:
-g 参数,只接受匹配的游戏CLI 启动 → 生成项目信息 → 启动 HTTP 服务器 → 等待 Studio 连接
↓
Studio 轮询 /poll 端点 → 项目验证 → 发送测试配置
↓
Studio 执行测试 → 发送日志到 /logs → 发送结果到 /results
↓
CLI 显示结果 → 退出 (成功: 0, 失败: 1)
GET /poll: Studio 轮询获取测试配置,包含项目验证逻辑POST /logs: 接收 Studio 发送的实时日志信息POST /results: 接收测试结果并显示,然后退出程序在项目根目录创建 testez-companion.toml 配置文件:
# 必需:测试根路径列表
roots = [
"game/ReplicatedStorage/Tests",
"game/ServerStorage/Tests",
"game/ServerScriptService/Tests"
]
# 可选:额外的测试选项
[test_extra_options]
# 这里可以添加传递给 TestEZ 的额外参数
# 具体选项取决于你的 TestEZ 版本和需求
CLI 支持从 Rojo 配置文件读取游戏名称。确保你的 default.project.json(或其他指定的配置文件)包含 name 字段:
{
"name": "MyAwesomeGame",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"$className": "ReplicatedStorage",
"Shared": {
"$path": "src/shared"
}
},
"ServerScriptService": {
"$className": "ServerScriptService",
"Server": {
"$path": "src/server"
}
}
}
}
CLI 会自动生成 TestService/testez-companion-info.model.json 文件,包含:
此文件用于项目匹配验证,确保 Studio 中运行的项目与本地一致。
原因:CLI 在 30 秒内未收到 Studio 连接
解决方案:
原因:Studio 中的项目与本地项目信息不匹配
解决方案:
name 字段一致-g 参数,确保名称完全匹配TestService/testez-companion-info.model.json 文件是否存在且有效原因:所有可用端口都被占用
解决方案:
原因:testez-companion.toml 文件不存在或格式错误
解决方案:
roots 数组至少包含一个路径原因:指定的 Rojo 配置文件不存在或无效
解决方案:
-r 参数指定正确的配置文件路径name 字段CLI 提供详细的调试信息:
如果问题仍未解决:
GET /poll - Studio 轮询获取测试配置,包含项目验证POST /logs - 接收 Studio 发送的实时日志信息POST /results - 接收测试结果并显示输出pnpm build - 构建 TypeScript 代码到 dist/ 目录pnpm build:plugin - 安装 rokit 工具并构建 Roblox 插件pnpm dev - 运行开发版本(使用 ts-node)pnpm start - 运行生产版本(需要先执行 build)pnpm watch - 监视文件变化并自动重新构建pnpm typecheck - 运行 TypeScript 类型检查(不生成文件)pnpm postinstall - 安装后钩子,自动安装 rokit 工具和更新子模块├── src/ # TypeScript 源代码
│ ├── index.ts # 主程序入口,CLI 参数处理和服务器启动
│ ├── config.ts # TOML 配置文件加载和解析
│ ├── state.ts # 应用状态管理,项目匹配逻辑
│ ├── testez.ts # TestEZ 相关类型定义
│ ├── api/ # HTTP API 端点处理器
│ │ ├── index.ts # API 导出
│ │ ├── poll.ts # /poll 端点,处理 Studio 连接和配置
│ │ ├── logs.ts # /logs 端点,处理日志输出
│ │ └── results.ts # /results 端点,处理测试结果
│ └── types/ # TypeScript 类型定义
│ └── index.ts # 通用类型定义
├── scripts/ # 辅助脚本
│ └── generate-project-info.js # 生成项目信息和 Git 哈希
├── plugin/ # Roblox Studio 插件代码
├── dist/ # 编译后的 JavaScript 代码
├── TestService/ # 自动生成的测试服务文件
│ └── testez-companion-info.model.json # 项目信息文件
├── testez-companion.toml # 主配置文件
├── package.json # Node.js 依赖和脚本配置
└── tsconfig.json # TypeScript 编译配置
MIT
FAQs
CLI for TestEZ Companion - TypeScript version
The npm package testez-componion-node-cli receives a total of 1 weekly downloads. As such, testez-componion-node-cli popularity was classified as not popular.
We found that testez-componion-node-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.

Security News
OpenSSF has issued a high-severity advisory warning open source developers of an active Slack-based campaign using impersonation to deliver malware.

Research
/Security News
Malicious packages published to npm, PyPI, Go Modules, crates.io, and Packagist impersonate developer tooling to fetch staged malware, steal credentials and wallets, and enable remote access.