Testing


On this page

    Since code stability is one of the main goals of Comunica, we spend a lot of effort on testing our code. For this, we continuously execute different kinds of tests in our continous integration setup. This means that every changes to the codebase always goes through a large number of tests to make sure that no existing logic breaks.

    Unit tests

    Using the Jest testing framework, we test each actor in isolation. The code requires a code and branch coverage of 100%.

    All unit tests can be executed in the development environment using the following command:

    $ yarn run test
    

    Integration tests

    Using rdf-test-suite-ldf.js, we check the correctness of a collection of SPARQL queries over the different default Comunica configurations. This tool makes use of declarative test manifest that are inspired by the SPARQL 1.1 test suite.

    All integration tests can be executed in the development environment using the following command:

    $ npx lerna run integration
    

    Specification tests

    To ensure the compliance to specifications, we continuously execute their test suites using rdf-test-suite.js.

    All specification tests can be executed in the development environment using the following command:

    $ npx lerna run spec
    

    Sanity checks

    Certain things such as browser builds are not fully tested yet. In order to at least check if they succeed during building, we check these steps as well.

    For example:

    $ npx lerna run browser
    

    Next steps

    There's still a lot more we want regarding testing to improve stability. Interested in helping out? Have a look at this issue.