MailNews:Automated Testing
Automated testing for MailNews (i.e. Thunderbird and the Mail/Newsgroups part of SeaMonkey) is becoming more important. We need to ensure that when we are fixing bugs we do not introduce regressions in other areas of the code. Automated testing is a vital part of this.
This page and its sub-pages are intended to describe and provide pointers to the available test mechanisms within MailNews and supporting information for developers and testers.
Developers and contributors should consider adding tests within MailNews where possible.
Tests are not only useful for checking for regressions, but they can help developing and testing of patches. For example, xpcshell tests are very good at checking interfaces, and are very quick to run as they only require a "make check" - you don't have to start up the application, and all the tests happen automatically in a consistent manner.
See also MailNews:Performance Testing.
General Notes
The devmo pages have some good descriptions on how to start writing automated tests.
Not all the automated tests will work at the moment, some of them require new support architectures, some of them require other issues fixing before they will pass/work correctly.
Automated Tests
- MailNews:xpcshell tests
- These currently run on the SeaMonkey tinderboxes, and report as TUnit. Thunderbird hopes to pick running of these up soon (bug 422817).
Notes for running on Trunk Builds
These apply to trunk builds of SeaMonkey and Thunderbird. They may also apply to other applications.
xpcshell tests
Some of the non-mailnews tests may currently fail in various places due to the following reasons:
- test_bug356370.js
- Fails for debug builds. See bug 428078.
- test_default_index_handler.js
- Fails for builds where the source isn't in cvs, fixed in mozilla-central. See bug 427831.
- test_bug299716.js
- test_bug378216.js
- test_bug394300.js
- test_download_manager.js
- These tests fail for debug builds of Thunderbird. See bug 431139.
Thunderbird builds will also fail in various places in core, see the dependencies of bug 406227.