用途:为 Solidity 智能合约提供系统化测试方案,覆盖单元测试、集成测试、Gas 优化测试、模糊测试、主网分叉测试、覆盖率报告与合约验证。
主要能力:Hardhat 侧支持 hardhat-toolbox、hardhat-etherscan、hardhat-gas-reporter、solidity-coverage 等插件配置,使用 chai 与 ethers 编写断言,通过 loadFixture 复用测试夹具,使用 time.increase 处理时间相关逻辑,用 changeTokenBalances、revertedWith、emit 等断言余额变化、回滚与事件。Foundry 侧使用 forge-std/Test,通过 setUp、assertEq、vm.prank、vm.deal、vm.expectRevert、vm.assume 等编写测试与模糊测试,并可用 vm.createSelectFork 进行主网分叉测试。高级模式包括 evm_snapshot/evm_revert 状态快照回滚、hardhat_reset 重置分叉、hardhat_impersonateAccount 模拟账户。
使用方式:在 Hardhat 项目中配置 hardhat.config.js 并运行 npx hardhat test;生成覆盖率报告运行 npx hardhat coverage;验证合约运行 npx hardhat verify --network mainnet CONTRACT_ADDRESS "Constructor arg1" "arg2",或在脚本中调用 hre.run("verify:verify", {...})。CI 中可依次执行 npm install、npx hardhat compile、npx hardhat test、npx hardhat coverage,并上传覆盖率至 Codecov。
适用场景:编写合约单元测试、搭建集成测试套件、Gas 优化对比、边界条件模糊测试、基于真实主网合约的分叉测试、自动化覆盖率报告与 Etherscan 验证。
限制:不适用于与 Web3 智能合约测试无关的任务;主网分叉与验证需要 RPC URL、私钥、Etherscan 及 CoinMarketCap 等 API Key 环境变量;具体收费、价格与平台支持情况暂未提供。