You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行anchor test报错,寻求技术排查协助

解决Anchor测试报错:This program may not be used for executing instructions

可能的原因及排查修复步骤

1. 测试环境Validator配置冲突

你的anchor.toml中[test.validator]设置了主网节点URL,这会导致本地测试Validator试图连接主网,和你克隆到本地的元数据程序产生权限冲突。本地测试应使用独立的本地链环境,而非主网节点。

修复方案:
修改anchor.toml的[test.validator]配置,移除url字段,让Validator启动本地独立链:

[test]
startup_wait = 5000
shutdown_wait = 2000

[test.validator]
bind_address = "127.0.0.1"
ledger = ".anchor/test-ledger"
rpc_port = 8899

[[test.validator.clone]]
address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"

2. 程序ID关联不匹配

检查以下三处程序ID是否完全一致:

  • Anchor.toml中[programs.localnet]下的程序ID
  • programs/sol_404/src/lib.rs里declare_id!宏指定的ID
  • 测试代码tests/sol_404.ts调用createmint指令时传入的程序账户ID

3. 程序未正确部署为可执行账户

重新编译部署程序,确保本地测试链中你的程序账户被标记为可执行状态:

anchor build && anchor deploy

可通过以下命令验证账户状态:

solana account <你的程序ID>

查看输出的executable字段是否为true。

4. 指令调用了非程序账户

检查createmint.rs中的指令逻辑,确认所有被调用的程序账户都是合法的可执行程序,没有误将数据账户或其他非程序账户当作程序调用。

内容的提问来源于stack exchange,提问作者papi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:52:16