public function runMutation(MutationInterface &$mutation, $options = array(), $logFile = null, $prependFile = null, callable $callback = null)
{
if (is_null($prependFile)) {
$prependFile = $this->createFileSystemMock($mutation);
}
if (is_null($logFile)) {
$logFile = tempnam(sys_get_temp_dir(), 'mutate-junit');
}
$self = $this;
$cb = function () use($mutation, $callback, $logFile, $self) {
$results = $self->getSuiteResult($logFile);
$result = $results->getByFile($mutation->getTestFile());
$mutation->setUnit($result);
if (is_callable($callback)) {
$callback($result);
}
};
$this->run($mutation->getTestFile(), array(), $logFile, $prependFile, $cb);
}