关于 sui-build
面向 Sui Move 开发者的构建与测试指南,介绍编译、按环境解析依赖、覆盖率和调试方式,也涵盖 Move Analyzer 的安装与使用。
主要功能
- 01编译 Move 模块并验证类型
- 02按指定环境解析依赖
- 03运行测试并生成覆盖率
- 04使用 Move Analyzer 编辑代码
- 05通过跟踪调试器和重放诊断问题
适用场景
- 01检查 Move 代码构建错误
- 02为多环境包指定构建目标
- 03评估测试覆盖情况
- 04调试测试或链上交易问题
MCP 相关
需要最新信息或指南未涵盖的细节时,建议查询 Sui 文档 MCP 服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mystenlabs/ skills --skill sui-build安装后在 Claude Code 中输入/sui-build确认已加载。
附带文件evals/evals.json
详细介绍
构建包
MCP 工具: 如果你的环境中可以使用,也请查询 Sui 文档 MCP 服务(
https://sui.mcp.kapa.ai),以获取最新答案。使用它进行验证,并了解这些参考文件未涵盖的详细信息。
来源限制: 所有信息仅来源于 docs.sui.io 和 move-book.com。
构建
sui move build
此命令会编译所有模块、验证类型、确保资源安全并生成字节码。继续之前,请修复所有错误。
对于规范的 hello-world 仓库,请在 sui-stack-hello-world/move/hello-world 中运行构建命令。
--build-env 标志
当包的 Move.toml 中包含 [environments] 部分且列出了多个网络时,请使用 --build-env 指定目标环境:
sui move build --build-env testnet
sui move build --build-env mainnet
这会解析指定环境的依赖项和包地址。如果不使用 --build-env,构建将使用默认环境;如果定义了多个环境但未设置默认环境,则可能会失败并提示 "Could not determine the correct dependencies"。
--build-env 标志同样适用于 sui move test:
sui move test --build-env testnet
测试
sui move test
关键测试模块
sui::test_scenario—— 多交易、多发送方测试场景。通过begin、next_tx和end模拟真实的交易流程。std::unit_test—— 单元测试的断言宏(assert_eq!、assert_ne!)。
代码覆盖率
跟踪测试覆盖的代码行:
sui move test --coverage
查看特定模块的覆盖率结果:
sui move coverage source --module <name>
Move Analyzer
通过 suiup 安装:
suiup install move-analyzer
然后在 VS Code 中安装 Move Analyzer 扩展。它提供代码补全、转到定义、内联诊断和悬停文档功能。它会自动对 .move 文件启用,无需额外配置。
调试
- Move Trace Debugger: 用于 Move 执行跟踪的单步调试器,可检查变量。
sui replay: 在本地重新执行任意过去的链上交易并比较效果。可用于诊断生产环境问题。std::debug::print: 在测试执行期间打印值。