public function addCest($file)
{
$name = $this->relativeName($file);
$this->tests[$name] = $file;
$loaded_classes = get_declared_classes();
require_once $file;
$extra_loaded_classes = get_declared_classes();
$testClasses = array_diff($extra_loaded_classes, $loaded_classes);
foreach ($testClasses as $testClass) {
$unit = new $testClass();
$reflected = new \ReflectionClass($testClass);
$methods = $reflected->getMethods(\ReflectionMethod::IS_PUBLIC);
foreach ($methods as $method) {
if ($method->isConstructor()) {
continue;
}
if ($method->isDestructor()) {
continue;
}
if (isset($unit->class)) {
$target = $unit->class;
$target .= $method->isStatic() ? '::' . $method->name : '.' . $method->name;
} else {
$target = get_class($unit) . '::' . $method->name;
}
$this->suite->addTest(new \Codeception\TestCase\Cest($this->dispatcher, array('name' => $name . ':' . $target, 'class' => $unit, 'method' => $method->name, 'static' => $method->isStatic(), 'signature' => $target, 'file' => $file, 'bootstrap' => $this->settings['bootstrap'])));
}
}
}