We have tree sets of tests:

  • the normal unit tests (ninja test)
  • integration tests using GstValidate.
  • manual tests

Since version 0.91, our backend test suite is much smaller and simpler; since most of the core functionality is now handled by GES, you need to run GES's test suite instead if you want to test more thoroughly.

Unit tests

You can run the unit tests with:

ninja -C mesonbuild/ test

If you want to run only one particular unit test, use:

nose2 tests test_project.TestProjectManager.testLoadProjectFailedUnknownFormat

Writing unit tests

As mock library we use Mock, as it's now integrated into Python3 which we use as of 0.94.

If you're curious about our unit tests, the best way to get to know them is to write a few Pitivi unit tests and have us review them. Check out how to set up your dev env and come in our IRC channel!

Integration tests

The integration tests are run with GstValidate. They are located in the tests/validate-tests directory. Each .scenario file in the scenarios subdirectory contains a sequence of actions which represent a test.

When a test is run, the actions in the scenario are performed by handlers in pitivi/utils/validate.py, or by handlers in GES. The handlers generally act on the widgets and check the expected effect has been obtained on the GES objects. Besides the checks integrated in the handlers, for now it is not possible to have additional checks.

A scenario file is created automatically each time Pitivi is used.

You can run the integration tests with:


See also:

The results of the search are