无法测试简单Truffle Solidity项目的技术求助
Truffle项目编译与测试问题解决方案
1. 构造函数可见性警告处理
- 问题原因:Solidity 0.8及以上版本中,构造函数的可见性修饰符(如
public)已被废弃,编译器会自动忽略该设置,因此触发警告。 - 解决步骤:
- 打开
contracts/SimpleProject.sol文件 - 将构造函数行的
public修饰符移除,修改为:constructor() { // 原构造函数逻辑 }
- 打开
2. 测试找不到工件错误处理
- 问题原因:测试文件
test/test_simple_project.js中错误引用了不存在的TestSimpleProject合约,而你实际创建的合约是SimpleProject,导致Truffle无法找到对应编译后的工件文件。 - 解决步骤:
- 打开
test/test_simple_project.js文件 - 将文件开头的导入语句修改为正确的合约名称:
// 原错误代码 // const TestSimpleProject = artifacts.require("TestSimpleProject"); // 修改后 const SimpleProject = artifacts.require("SimpleProject"); - 同时更新测试块内的合约实例引用,例如:
contract("TestSimpleProject", accounts => { let simpleProjectInstance; beforeEach(async () => { simpleProjectInstance = await SimpleProject.deployed(); }); // 测试用例逻辑 }); - 保存文件后重新运行
truffle test即可正常执行测试。
- 打开
内容的提问来源于stack exchange,提问作者Robert Johnstone
相关产品推荐
相关产品推荐

