开发者

Why would Eclipse not be able to include a file when running a PHPUnit test?

I have the following class and unit test in a PHP project in Eclipse:

Why would Eclipse not be able to include a file when running a PHPUnit test?

I know my unit test works as I can run it at the command line:

Why would Eclipse not be able to include a file when running a PHPUnit test?

Now I want to run this test from Eclipse. I set up PHP Unit in Eclipse like this:

Why would Eclipse not be able to include a file when running a PHPUnit test?

However, when I run the PHPUnit tests:

Why would Eclipse not be able to include a file when running a PHPUnit test?

It tells me that it can't include the class file:

/usr/bin/php -c /var/folders/UA/UAv38snBHd0QMgEPMCmM9U+++TM/-Tmp-/zend_debug/session4910937990995915704.tmp -d asp_tags=off /Applications/eclipse/plugins/org.phpsrc.eclipse.pti.tools.phpunit_0.5.0.R20101103000000/php/tools/phpunit.php --log-junit /var/folders/UA/UAv38snBHd0QMgEPMCmM9U+++TM/-Tmp-/pti_phpunit/phpunit.xml /Volumes/data/domains/et/extjslayout/phpunittest/tests
PHP Warning:  include_once(../Product.php): fail开发者_运维问答ed to open stream: No such file or directory in /Volumes/data/domains/et/extjslayout/phpunittest/tests/ProductTest.php on line 3
PHP Warning:  include_once(): Failed opening '../Product.php' for inclusion (include_path='/usr/local/PEAR') in /Volumes/data/domains/et/extjslayout/phpunittest/tests/ProductTest.php on line 3
PHP Fatal error:  Class 'Product' not found in /Volumes/data/domains/et/extjslayout/phpunittest/tests/ProductTest.php on line 9

Why would PHPUnit be able to find the class when run from the command line but not when run from Eclipse?


When you start something from the command line, the "current directory" has a well-defined meaning: It's the directory where you started the command.

In Eclipse, what is the "current directory"? It's probably the directory from which you started Eclipse or maybe the folder in which Eclipse is installed.

I haven't used PHP in Eclipse before but for other languages, I can set the current directory in the launch config somewhere. If that doesn't work, define a variable which points to your project and then use absolute paths (using that variable as a starting point).


Have same problem. Found only solution by creating tests with internal PHPUnit wizard like at this screenshot:

Why would Eclipse not be able to include a file when running a PHPUnit test?

Source: HowTo create a Test Case Class from a PHP Class

But following investigate show that your test case file should contain reference to tested code for example like this: require_once 'C:\Apache2\htdocs\jobeet\src\Ibw\JobeetBundle\Utils\Jobeet.php';

Other experiments with plugin config not bringing luck. So in my opinion PHPUnit from PHP Tools not well developed plugin. Consider using MakeGood plugin as better alternative.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜