本文整理汇总了PHP中lithium\analysis\Inspector::executable方法的典型用法代码示例。如果您正苦于以下问题:PHP Inspector::executable方法的具体用法?PHP Inspector::executable怎么用?PHP Inspector::executable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lithium\analysis\Inspector
的用法示例。
在下文中一共展示了Inspector::executable方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: analyze
/**
* Analyzes code coverage results collected from XDebug, and performs coverage density analysis.
*
* @param object $report The report instance running this filter and aggregating results
* @param array $classes A list of classes to analyze coverage on. By default, gets all
* defined subclasses of lithium\test\Unit which are currently in memory.
* @return array|void Returns an array indexed by file and line, showing the number of
* instances each line was called.
*/
public static function analyze($report, array $classes = array())
{
$data = static::collect($report->results['filters'][__CLASS__]);
$classes = $classes ?: array_filter(get_declared_classes(), function ($class) use($data) {
$unit = 'lithium\\test\\Unit';
return !is_subclass_of($class, $unit) || array_key_exists($class, $data);
});
$classes = array_values(array_intersect((array) $classes, array_keys($data)));
$densities = $result = array();
foreach ($classes as $class) {
$classMap = array($class => Libraries::path($class));
$densities += static::_density($data[$class], $classMap);
}
$executableLines = array();
if (!empty($classes)) {
$executableLines = array_combine($classes, array_map(function ($cls) {
return Inspector::executable($cls, array('public' => false));
}, $classes));
}
foreach ($densities as $class => $density) {
$executable = $executableLines[$class];
$covered = array_intersect(array_keys($density), $executable);
$uncovered = array_diff($executable, $covered);
$percentage = round(count($covered) / (count($executable) ?: 1), 4) * 100;
$result[$class] = compact('class', 'executable', 'covered', 'uncovered', 'percentage');
}
$result = static::collectLines($result);
return $result;
}
示例2: testExecutableLines
/**
* Gets the executable line numbers of this file based on a manual entry of line ranges. Will
* need to be updated manually if this method changes.
*
* @return void
*/
public function testExecutableLines()
{
do {
// These lines should be ignored
} while (false);
$result = Inspector::executable($this, array('methods' => __FUNCTION__));
$expected = array(__LINE__ - 1, __LINE__, __LINE__ + 1);
$this->assertEqual($expected, $result);
}
示例3: testExecutableLinesOnEmptyClass
public function testExecutableLinesOnEmptyClass()
{
$result = Inspector::executable(new MockEmptyClass());
$this->assertEqual(array(), $result);
}