Lime (software)


lime is a unit testing and functional testing framework built specifically for the Symfony web application framework based on the Perl library. The framework is designed to have readable output from tests, including color formatting, by following the Test Anything Protocol which also allows for easy integration with other tools. lime tests are run in a sandbox environment to minimize test executions from influencing each other. Though the lime testing framework is built for testing within Symfony, lime is contained within a single PHP file and has no dependency on Symfony or any other library.
The alpha version of lime 2.0 was announced on November 10, 2009 and is compatible with Symfony 1.2 and lower. Symfony 2.0 uses PHPUnit for testing instead of lime.

Example

lime unit tests use the lime_test object to make assertions. The following is a basic example lime unit test to test PHP's built-in in_array function.

include; // Include lime.
// Create the lime_test object for 10 number of assertions and color output.
$t = new lime_test);
// The test array.
$arr = array;
// Output a comment.
$t->diag;
// Test to make sure in_array returns a boolean value for both values
// that are in the array and not in the array.
$t->isa_ok;
$t->isa_ok;
$t->isa_ok;
$t->isa_ok;
// Test to make sure in_array can find values that are in the array
// and doesn't find values that are not in the array.
$t->ok;
$t->ok;
$t->ok;
$t->ok;
$t->ok;
$t->ok;

Version 2.0

The alpha version of lime 2.0 was announced on the Symfony blog on November 10, 2009. The second version of lime was built to be as backward compatible with the first version as was possible - the two parts of lime 2.0 that are not compatible with lime 1.0 are the configuration of the test harness and the LimeCoverage class. lime 2.0 includes support for xUnit output, source code annotations, parallel execution of tests, automatic generation of mock and stub objects, and operator overloading for data within tests. Unlike the first version of lime, lime 2.0 does have some dependencies on Symfony.