npm 使用安全帽运行单元测试时向测试脚本传递参数

vshtjzan  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(91)

我有一套测试solidity智能合约的单元测试。这些都很好,但是solidity智能合约文件的位置被硬编码到JavaScript测试文件中。
我想把这个文件的位置作为一个参数传递给我的测试脚本,但是我找不到一种方法用hardhat来做到这一点。
我现在这样运行我的测试:
npx安全帽测试“./scripts/erc20tests.js”
我希望能够像这样运行它:
npx安全帽测试“./scripts/erc20tests.js”“../../erc20.sol”
但这行不通。它不被接受为有效的我的安全帽。有什么建议吗?
我的另一个选择是将此值设置为环境变量,但我不喜欢这种方法。

avwztpqn

avwztpqn1#

您可以使用原生NodeJS process.argv属性(docs)来读取命令行参数。
然后您可以动态加载.sol文件。

const contract = await ethers.deployContract(process.argv[4] || defaultContract);
  • 注:一般建议将测试文件放入test文件夹。scripts文件夹用于由npx hardhat run命令执行的脚本。(docs)*

相关问题