This repository provides a reusable, lightweight test library for all internal EVM-compatible chains. It enables developers to run existing tests against any devnet, testnet, or mainnet chain simply by specifying environment variables (e.g., L2_RPC_URL
) in the .env
file.
- Reusable Testing Framework: Run tests on any EVM network by updating the
.env
file with the appropriate values. - Lightweight and Portable: No infrastructure dependencies—just update
.env
and run the tests out of the box. - Integrated Dependencies: All required tools (e.g.,
bats
,cast
) are automatically bundled into the run process if they aren't already installed. - Flexible Test Formats:
- Supports
.bats
and.go
tests. - Shared
Makefile
ensures a common syntax for running all test commands. - Designed to support additional languages (e.g., Rust) in the future.
- Supports
- Seamless CI Integration: Add your own tests and have them run automatically in nightly CI jobs.
- Ensure you have the following installed:
-
Clone the repository:
git clone <repo-url> cd evm-regression-tests
-
Configure the
.env
file with your network's details:l2_rpc_url=http://<your-rpc-url> SENDER_PRIVATE_KEY=<your-private-key> RECEIVER=<receiver-address> BATS_LIB_PATH="<path-to-bats-lib>"
-
Run the tests:
bats bats/e2e.bats
- Add
.bats
tests under thescripts/bats-scripts/
directory or.go
tests under thescripts/go-scripts/
directory. - Update the
Makefile
to include any new test types or commands. - Submit your test changes, and they will automatically run in the nightly CI pipeline.
if [ -f .env ]; then
source .env
else
echo ".env file not found. Please create one."
exit 1
fi
Use the Makefile
to run all tests:
make test
- Additional Language Support: Extend support for Rust, Python, and more.
- Enhanced Orchestration: Simplify multi-environment testing with advanced orchestration.
- CI Enhancements: Add detailed reports and test coverage tracking.
We welcome contributions! To add your tests or suggest improvements:
- Fork the repository.
- Create a new branch for your changes.
- Submit a pull request.
This repository is for internal use only.
For support or questions, reach out to the DevTools team on Slack