I'm currently using sfBrowser with PHPUnit instead of lime, which in general isn't a problem.
It looks like lime spawns a new PHP instance for each test suite, so the contexts don't overlap too badly, and doesn't get completely out of hand (though, it still writes duplicate/triplicate/etc log entries, but the process dies and resets the context, effectively)
Whereas, if I'm running, say, 20 f-tests with a couple of call()'s each, then suddenly, every application.log even writes 40 lines to the log file. Running a small portion of my test suite took a _long_ time, and I had 50mb of logs.
Is there a way to reinitialise the context to a known original state, instead of just calling ->initalize() again, which seems to cause these issues? Or do you need to modify the dispatcher somehow to check that the same object/method isn't listening repeatedly to the same event? Hm.
Simple steps to reproduce.
tail -f /path/to/logs/frontend_text.log
And then execute some functional tests..
./symfony test:functional frontend moduleActions
Where the contents of the f-test is something like..
<?php
require_once(dirname(__FILE__).'/../../bootstrap/functional.php');
// create a new test browser
$browser = new sfTestBrowser();
$browser->
get('/module/index')->
isStatusCode(200);
$browser->
get('/module/index')->
isStatusCode(200);
$browser->
get('/module/index')->
isStatusCode(200);
$browser->
get('/module/index')->
isStatusCode(200);
$browser->
get('/module/index')->
isStatusCode(200);
$browser->
get('/module/index')->
isStatusCode(200);
...
You'll see in the log that there are duplicates.