我想在给定的文件夹中编写一个“发现”PHPUnit测试的脚本。
目前我可以执行:
phpunit .
然后显示我的所有测试名称,但是执行它们可能需要相当长的时间。
我想要的是能够在没有实际执行测试的情况下查看项目中的测试。采用类似于
的格式ExampleTest::testNameHere
这可能吗?
感谢您的时间。
答案 0 :(得分:0)
/* phpunit/php-file-iterator */
$iteratorFactory = new File_Iterator_Factory();
$paths = array(
/* testsuite path */
'/var/www/project/tests/unit/phpUnit/',
);
$suffixes = array(
'Test.php',
);
$iterator = $iteratorFactory->getFileIterator($paths, $suffixes);
foreach ($iterator as $file) {
$fileName = $file->getFileName();
$path = $file->getPathName();
// you should use autoloader
require_once $path;
// build className, according to your file structure
$class = preg_replace('/\.php/', '', $fileName);
$refrlection = new ReflectionClass($class);
$methods = $refrlection->getMethods(ReflectionMethod::IS_PUBLIC);
foreach ($methods as $method) {
// test* is test method
if (preg_match('/^test[A-Z]/', $method->getName())) {
echo $refrlection->getName() . ':' . $method->getName();
echo PHP_EOL;
}
}
}
答案 1 :(得分:0)
检测文件是否包含以下内容的代码:
应该这样做。
答案 2 :(得分:0)
您正在寻找: