Testing
This is a short canned synopsis of testing in the tremor project.
Running Internal Tests
cargo test --all
Running Integration Tests
Running all integration tests:
cargo run -p tremor-cli -- test all tremor-cli/tests
You can also run a singular test or benchmark by referring to the containing folder:
cargo run -p tremor-cli -- test bench ./tremor-cli/tests/bench/specific-benchmark
EQC
This is a purely optional step.
EQC or 'QuickCheck' is a specification-based testing tool for Erlang supporting a test methodology called property-based testing. Programs are tested by writing properties - preconditions, postconditions and invariants. QuickCheck uses random generation to create constructive ( should pass ) and destructive ( should fail ) tests given the specified properties. This allows suitably defined specifications to cover a far greater set of use cases than would ordinarily be possible to write manually.
Further to this, QuickCheck can reduce a set of failing test cases to the minimal test case that forces any failing test to fail its specification. This drastically reduces the amount of QA and developer time required to verify or prove a piece of code works given a suitably defined specification.
Start tremor
You need to start the tremor to run the tests:
cargo run -p tremor -- server run
Running EQC
In tremor-runtime/tremor-erl
run:
rebar3 as eqc eqc