VuFind uses continuous integration to monitor the quality of the code base and allow early detection of problems. This is a work in progress, and this page exists to help keep track of tools and ideas. You can help by writing new unit tests and by fixing problems identified within our Hudson instance.
The following technologies are currently installed as part of our continuous integration setup.
Jenkins (formerly named Hudson) is a popular open source continuous integration server.
Resources:
Sonar is a source code quality management tool which can integrate with Hudson.
Resources:
Maven is a project management tool useful for understanding a project's structure and automating processes like builds. While traditionally associated with the Java world, it can be applied to PHP as well. We currently use Maven for triggering Sonar; Phing (see below) is used for the rest of our continuous integration automation.
Resources:
Phing is a build tool designed as the PHP-based answer to Apache Ant. It can be integrated with Hudson just as Maven can. We currently use Phing to set up our Selenium test environment and to generate several of Hudson's reports.
Resources:
PHPUnit is a unit testing framework for PHP. See the Unit Tests page for more details.
Selenium is a Java-based tool for building automated browser-based tests. Its “remote control” feature is useful for integration testing, although tests can take a very long time to execute.
Resources:
These tools are not currently used by the VuFind community, but they may prove useful in the future. Please feel free to add to this list by pointing out other tools that might help make VuFind more robust.
Cucumber is a Behavior Driven Development tool useful for integration testing. It is most commonly used in the Ruby world, but it can be used with PHP as well.
Resources:
Watir is another Ruby-based tool which is used for automated testing of web sites. Possibly useful as an alternative/complement to Cucumber and Selenium.
Resources: