我正在努力让phpunit使用我的symfony2项目在netbeans中工作。
我在项目根目录中进行了子文件夹测试。尝试将项目链接到phpunit.xml.dist和bootstrap.php.cash。并在该测试文件夹中创建了一个MyProjectTestSuite.php,并将其放入我的项目属性中。
但所有这些都让我错误:
PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class "" in "C:\Program Files\NetBeans 7.1.2\php\phpunit\NetBeansSuite.php".' in C:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php:125
Stack trace:
#0 C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('', 'C:\Program File...')
#1 C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#2 C:\xampp\php\phpunit(53): PHPUnit_TextUI_Command::main()
#3 {main}
thrown in C:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php on line 125
Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class "" in "C:\Program Files\NetBeans 7.1.2\php\phpunit\NetBeansSuite.php".' in C:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php:125
Stack trace:
#0 C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('', 'C:\Program File...')
#1 C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#2 C:\xampp\php\phpunit(53): PHPUnit_TextUI_Command::main()
#3 {main}
thrown in C:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php on line 125
并且测试不会被执行。
myprojectetstsuite.php看起来像这样。
<?php
use Symfony\Component\Finder\Finder;
class MyProjectTestSuite extends PHPUnit_Framework_TestSuite
{
public static function suite()
{
$suite = new MyProjectTestSuite();
$finder = new Finder();
// ---------- COMMENT OUT TO TEST A SPECIFIC FILE ----------
// $suite->addTestFile('../src/<yourbundle>/DefaultBundle/Tests/Controller/SomeControllerTest.php');
// return $suite;
// ----------
echo "Searching for test cases...\n\n";
foreach ($finder->files()->in('../src/')->name('*Test.php') as $file) {
if (preg_match('%\\Tests\\[\w-\\]+Test.php%i', $file->getPathName())) {
echo 'Adding test : ' . $file->getPathName() . "\n";
$suite->addTestFile($file->getPathName());
}
}
echo "\n";
return $suite;
}
}
答案 0 :(得分:1)
okey ..如果测试套件没有找到任何测试,netbeans会占用默认的测试套件。我调整了我的代码abit,以便我确定我找到了一些测试(注释了正则表达式),并且他们都在那里。