Development/Unit Tests
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Preamble
This page is meant to give an overview of unit tests for LibreOffice. If you provide a patch on a lib, please try to provide corresponding unit tests. They'll allow a better understanding on how to use your new features or about what has been corrected (and will avoid regressions).
Note that even non-developers could help to improve some unit tests.
Motivation
See e.g. Kohei's talk for motivation. Quoting slide 25 here:
- One unit test is worth 20 future bug fixes.
- A bug fix does not finish until you write a test.
- Writing unit test is courtesy for your fellow developers.
- We really don’t have a choice.
Test frameworks
You can learn more about Unit testing and using specific test framework with LibreOffice on dedicated pages:
- Unit tests in C++ via CppUnit
- Unit tests in C++ via UNO
- Unit tests in Java via UNO
- Unit tests in Python via UNO
- Unit tests by non developers
Areas with "No fix without a unit test" rule
Several areas in the LibreOffice code require a unit test to be associated with every fix that goes into the area. Please talk to the responsible person (in brackets below), or to the general development mailing list if you have trouble writing an unit test. Also these areas would benefit most from more test coverage in general. So you are invited to provide more test coverage for these areas even if you are not changing behaviour.
Areas that require a unit test with every fix:
- chart2 [Markus Mohrhard - moggi on IRC]
- Writer import and export filters (documentation) [Miklos Vajna - vmiklos on IRC]