private function runBenchmark(RunnerContext $context, BenchmarkMetadata $benchmark, \DOMElement $benchmarkEl)
{
if ($benchmark->getBeforeClassMethods()) {
$this->executor->executeMethods($benchmark, $benchmark->getBeforeClassMethods());
}
foreach ($benchmark->getSubjectMetadatas() as $subject) {
$subjectEl = $benchmarkEl->appendElement('subject');
$subjectEl->setAttribute('name', $subject->getName());
if (true === $subject->getSkip()) {
continue;
}
foreach ($subject->getGroups() as $group) {
$groupEl = $subjectEl->appendElement('group');
$groupEl->setAttribute('name', $group);
}
$this->logger->subjectStart($subject);
$this->runSubject($context, $subject, $subjectEl);
$this->logger->subjectEnd($subject);
}
if ($benchmark->getAfterClassMethods()) {
$this->executor->executeMethods($benchmark, $benchmark->getAfterClassMethods());
}
}