Skip to main content

Requirements

  • Install chromedriver . It is required to run tests from ./apps/block_scout_web of the Umbrella application.
  • This set of environment variables is required for each run of the test (mix test) suite:
    Since v6.6.0, there are more flexible options for configuring the database used in testing. Refer to the TEST_DATABASE_URL and DATABASE_READ_ONLY_API_URL environment variables for more details.

Running tests

  1. Build assets. cd apps/block_scout_web/assets && npm run build; cd -
  2. Format Elixir code. mix format
  3. Lint Elixir code. mix credo --strict
  4. Run the dialyzer. mix dialyzer --halt-exit-status
  5. Check the Elixir code for vulnerabilities. cd apps/explorer && mix sobelow --config; cd - cd apps/block_scout_web && mix sobelow --config; cd -
  6. Lint JavaScript code. cd apps/block_scout_web/assets && npm run eslint; cd -
  7. Test JavaScript code. cd apps/block_scout_web/assets && npm run test; cd -
  8. Run separate test suites for the Umbrella application
    - indexer
    mix do ecto.create --quiet, ecto.migrate && cd apps/indexer && mix do compile, test --no-start && cd -

    - explorer
    mix do ecto.create --quiet, ecto.migrate && cd apps/explorer && mix do compile, test --no-start && cd -

    - block_scout_web
    mix do ecto.create --quiet, ecto.migrate && cd apps/block_scout_web && mix do compile, test --no-start && cd -

    - ethereum_jsonrpc
    mix do ecto.create --quiet, ecto.migrate && cd apps/ethereum_jsonrpc && mix do compile, test --no-start && cd -

Nethermind

Mox This is the default setup. mix test --no-start will work on its own, but to be explicit, use the following setup:
HTTP / WebSocket

Geth

Mox
HTTP / WebSocket