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

问题描述 投票:0回答:1

我有一套单元测试,可以测试一些 Solidity 智能合约。这些都工作正常,但是 Solidity 智能合约文件的位置被硬编码到 JavaScript 测试文件中。

我想将此文件的位置作为参数传递给我的测试脚本,但是我找不到使用安全帽执行此操作的方法。

我目前运行我的测试是这样的:

npx 安全帽测试“./scripts/erc20tests.js”

我希望能够像这样运行它:

npx 安全帽测试“./scripts/erc20tests.js”“../../erc20.sol”

但这不起作用。我的安全帽不认为它有效。有什么建议吗?

我的另一个选择是将此值设置为环境变量,但我不喜欢这种方法。

unit-testing npm ethereum npx hardhat
1个回答
0
投票

您可以使用原生 NodeJS

process.argv
属性 (docs) 来读取命令行参数。

然后就可以动态加载

.sol
文件了。

const contract = await ethers.deployContract(process.argv[4] || defaultContract);

注意:一般建议将测试文件放入

test
文件夹中。
scripts
文件夹用于由
npx hardhat run
命令执行的脚本。 (文档

© www.soinside.com 2019 - 2024. All rights reserved.