# Test Harness and Test Cases
This directory contains all tests in Teaclave including unit tests, integration tests, functional tests and some test fixtures.
# Run Tests
To run all tests with our build system:
$ make run-tests
You can also run tests separately:
$ make run-unit-tests $ make run-integration-tests $ make run-functional-tests # this will start all services in the background automatically
# Test Coverage
To generate a coverage report for tests, you can configure cmake with
-DCOV=ON. Then build the platform and run all tests. At last, you need to run
make cov to aggregate coverage results.
# Directory Structure
unit: Unit tests are small and more focused, testing one module in isolation at a time, and can test private interfaces. This directory contains a test driver to test individual units/components or private interfaces. Test cases of unit tests are placed along with source code.
integration: Integration tests are entirely external to libraries, using only the public interface and potentially exercising multiple modules per test. This directory contains a test driver and test cases to test public interfaces in common libraries.
functional: Functional testing is a type of black-box testing. In Teaclave, the test cases are usually sent through RPC channel. This directory contains a test driver and test cases for Teaclave services. To run these tests, services need to be launched.
fixtures: Testing fixtures are some files and sample inputs/outputs for testing only.
utils: Common utilities for test drivers.