【发布时间】:2010-10-26 21:37:04
【问题描述】:
我有以下文件夹结构:
/main
/loader.php
/build.xml
/components
/package1
/class1.php
/package2
/class2.php
/tests
/package1
/class1.test.php
/package2
/class2.test.php
当我运行 Web 应用程序时,我首先加载 loader.php 并通过调用 Loader::load( 'package_name' ) 包含其他组件。然后包括所有必要的文件。这里的好处是我不需要在类文件中包含loader.php,因为我可以依赖Loader 的工作实例。
单元测试类通过显式包含所有必要的类来模拟这种行为。所以 phing 和 PHPUnit 也没有问题。
但现在我想用 phing 和 Xdebug 生成覆盖率报告。这里的问题是 phing 似乎加载了每个 PHP 文件来创建覆盖数据库。不幸的是,它停止了,因为它找不到 PHP 文件中使用的 Loader 类。
我可以轻松地将include 语句添加到每个类文件中,但我想知道是否只有在代码覆盖分析检查文件时才包含文件?
其他想法:我还可以配置覆盖分析,使其扫描单元测试目录,从而找到所有必要的包含。然后我需要过滤与/Test$/i 等模式匹配的类。可能吗?
【问题讨论】: