[[PageOutline(2-5,Contents,pullout)]] = Trac Functional Tests Automated functional tests are integrated in the test suite (see TracDev/UnitTests). They are formed by executing a series of unit tests. For detailed informations about functional tests, see: - source:trunk/doc/dev/testing.rst - source:branches/0.12-stable/TESTING-README (old) These functional tests do not replace manual testing. == Extra dependencies * [http://twill.idyll.org/ twill] — simple scripting language for Web browsing * [http://lxml.de/validation.html lxml] — used for XHTML validation Those packages can be installed with `easy_install`: {{{#!sh easy_install twill easy_install lxml }}} Note that one test requires that the `svn` program can be executed. === Windows specific dependencies For `lxml`, the latest version is not always easy-installable for Windows, so you will have to download a somewhat older version from PyPI: http://pypi.python.org/pypi/lxml/2.3 There's also an additional dependency on Windows: [http://carey.geek.nz/code/python-fcrypt/ fcrypt] The usual install method will work: {{{#!sh easy_install fcrypt }}} If `fcrypt` is not installed, you will get the following error when running the tests with Trac 0.11: {{{ "Exception: Unable to setup admin password" }}} or this warning starting with Trac 0.12: {{{ Warning: cannot parse password for user "crypt" without the "crypt" module }}} == Running the tests To run the functional tests, execute: {{{ PYTHONPATH=. python ./trac/tests/functional/__init__.py }}} or: {{{#!sh make functional-test }}} This is starting from Trac 0.12, as Trac 0.11 has no Makefile. == Discussion / Feedback Something to consider here: using twill's wsgi_intercept capability, and making these part of the unit tests.