# Subcomponent Tests Subcomponent is unit-tested on its compiler only. The compiler generates a configuration database that is then used to for the nominal use of subcomponent. Other than its compiler, which is fairly self-contained, Subcomponent is too complex (because it relies on third-party programs, manipulates the filesystem, ...) to be unitarily tested. Tests are divided into two parts: - `cargo` unit tests, to check the internals of the compiler - system tests to check some nominal use cases of subcomponent as well as some corner cases we thought of. ## A word about unit tests Unit tests are done using `cargo`, which is necessary to build subcomponent. So, you should already have cargo installed, and you can run the tests: ```bash cargo test ``` Details about unit tests are available in the `README.md` files that reside in the unit tests folders: - `lexer/` - `parser/` ## A word about system tests System tests rely on RobotFramework (http://robotframework.org/). You need to have the `robot` command available in your *PATH* to run the tests. You will also need third-party tools that subcomponent itself uses: - `git`. ## Running all the tests From the `tests/` directory, run `make`.