Skip to main content

TUI for running interacting with Foundry's Forge Tests.

Project description

Crucible Logo

Crucible is a terminal UI application wrapper for forge test built with Textual (💖). It provides an interactive environment to navigate your test tree and the trace output of running a test with full verbosity.

Installation

I recommend using pipx, which installes applications distributed via pypi into their own virtual environment.

$ pipx install forge-curcible

This will install the crucible executable.

Running

To run it just navigate to the root of a foundry project and run:

$ crucible

The app should run the full test suite and output a tree representation:

Example Test Suite view

You can navigate the tree via the arrows or vim-style (recommended 🤓). You can also press CTRL+P to bring up the command pallet where you can fuzzy-find tests to run:

Example Search view

Once you pick a test you will see the trace view:

Example Test Trace view

Disclaimer

This is very alpha software so it might not work. It employs a grammer to parse the forge output. I've tried it on a variety of tests but it could still fail when opening a test. If it happens it will create a /tmp/<test-name>.txt file with the output. Please open an issue and attach the output.

Upcoming features

  • Trace filtering: Have a list of customizable filters that can be toggled to hide trace lines from the output. The current filtering feature just filters console.log, VM.label and VM.addr.
  • Trace search: Jump to trace line by fuzzy searching on the function call or event name.
  • Profile switch: Switch the foundry profile that you're using to run the tests, should automatically detect existing profiles.
  • Custom labling: Ability to do in-app labeling of addresses or bytes32 identifiers.
  • External decoding: Use public resources to decode function calls and events which could come up in fork-tests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forge_crucible-0.1.21.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_crucible-0.1.21-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file forge_crucible-0.1.21.tar.gz.

File metadata

  • Download URL: forge_crucible-0.1.21.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/23.5.0

File hashes

Hashes for forge_crucible-0.1.21.tar.gz
Algorithm Hash digest
SHA256 a3794d8cbe7dde42828ad387c1f56b75ba2ef15b81d0345a578afc9da223ab5b
MD5 73948f2f6ca3353a5b48221e81a26f8f
BLAKE2b-256 936e4372bc4a614468de8537b77c19a5e45b07f091b4243ff0094d833dda2b71

See more details on using hashes here.

File details

Details for the file forge_crucible-0.1.21-py3-none-any.whl.

File metadata

  • Download URL: forge_crucible-0.1.21-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/23.5.0

File hashes

Hashes for forge_crucible-0.1.21-py3-none-any.whl
Algorithm Hash digest
SHA256 492ebf2703916edb78f8b0e369c6b2a41244ba54128d83d7dc58b4167d242bc0
MD5 6546056ab61d985434505b1aced8629b
BLAKE2b-256 ca3658b6b6cf6acad76d31355ff7f3e3a68699729d0fbc754af98020b7d5c448

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page