This crate has been moved to https://github.com/GothenburgBitFactory/taskchampion-sync-server. The integration-tests repo used the sync server to test integration between taskchampion and the sync-server. We should do that again, but after taskchampion moves to its own repo (#3209). In the interim, the cross-sync integration test can simply test syncing between local servers, but the snapshot test is no longer useful as the local server does not support snapshots.
Integration Tests for TaskChampion
"Regular" Tests
Some of the tests in tests/ are just regular integration tests.
Nothing exciting to see.
Bindings Tests
The bindings tests are a bit more interesting, since they are written in C.
They are composed of a collection of "suites", each in one C file in integration-tests/src/bindings_tests/.
Each suite contains a number of tests (using Unity) and an exported function named after the suite that returns an exit status (1 = failure).
The build script (integration-tests/build.rs) builds these files into a library that is linked with the integration_tests library crate.
This crate contains a bindings_tests module with a pub function for each suite.
Finally, the integration-tests/tests/bindings.rs test file calls each of those functions in a separate test case.
Adding Tests
To add a test, select a suite and add a new test-case function.
Add a RUN_TEST invocation for your new function to the .._tests function at the bottom.
Keep the RUN_TESTs in the same order as the functions they call.
Adding Suites
To add a suite,
- Add a new C file in
integration-tests/src/bindings_tests/, based off of one of the others. - Add a the suite name to
suitesinintegration-tests/build.rs.