Onionr/docs/dev/running-tests.md

1.3 KiB

Running Onionr tests

Onionr has four types of tests:

  • unittests
  • integration tests
  • selenium tests (web tests)
  • runtime-tests

unittests

Onionr uses Python's built in unittest module. These tests are located in tests/ (top level)

Run all tests with $ make test, which will also run integration tests.

Please note that one unittest tests if runtime-tests have passed recently. This is simply a forceful reminder to run those tests as well.

You can also run a single unittest in a loop by using the script scripts/run-unit-test-by-name.py

integration tests

These tests are pretty basic and test on stdout of Onionr commands.

They are also run from $ make test

The runtime-tests do most of the actual integration testing.

selenium tests

These are browser automation tests to test if the UI is working as how it should for a user.

There's only a couple and they're incomplete, so they can be ignored for now (test manually)

runtime-tests

These are important. They look into the Onionr client Flask app when Onionr daemon is running and test a bunch of things.

If you do it a lot you should make your own Onionr network (disable official bootstrap)

You run this while the daemon is running (probably should make sure onboarding is done), with $ onionr.sh runtime-test

It's necessary to do this before running $ make test for unittesting