Error when I try run PHPUnit from PhpStorm

23,313

Solution 1

I found solution about this problem.

In Edit configurations in directory I set path to my tests catalog (/path/to/my/project/tests), after this tests are running properly.

Solution 2

This is what worked for me, thanks to Piotr's answer above, but I'm providing with a bit more exact detail here all the steps I had to do:

Steps to make it work (test in PHPStorm 8.0.1):

1) In Preferences > PHP > PHPUnit make sure that nothing is set for Default configuration file or default bootstrap file.

2) Make a custom PHPUnit Configuration via Run > Edit Configurations > in the Command Line subsection, and be sure to:

a) set Custom working directory: to be /absolute/path/to/vendor.

b) check "Use alternative configuration file:" and set it to /absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist

Then you can run any test class in the suite by specifying the class and file, or just check "Defined in the configuration file" to run all of them according to the config.

Solution 3

I have same problem when using composer.

The solution is to put your test file in its own directory. Here is my working phpunit, i put all my test in test directory.

<phpunit bootstrap="vendor/autoload.php" 
    colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    stopOnFailure="true">
    <testsuites>
        <testsuite name="Test Suite">
            <directory>test</directory>
        </testsuite>
    </testsuites>
</phpunit>

Hope it solves if anyone have same problem.. :)

Share:
23,313
Piotr Olaszewski
Author by

Piotr Olaszewski

Call center software programmer. ouzoframework.org thulium.eu

Updated on November 27, 2020

Comments

  • Piotr Olaszewski
    Piotr Olaszewski over 3 years

    I have little problem when I'm trying to run PHPUnit test in IDE PhpStorm.

    I use composer file which looks:

    {
        "require": {
            "phpunit/phpunit": "3.7.19"
        }
    }
    

    Now when I run test I recive exception: PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.'

    What is wrong? When I included pear installed version test working OK.

    //EDIT Sample test class:

     class ReaderTest extends PHPUnit_Framework_TestCase
        {
            /**
             * @test
             */
            public function shouldGetReadedValue ()
            {
                $this->assertTrue(true);
            }
        }
    

    //EDIT2 Trace:

    /usr/bin/php /tmp/ide-phpunit.php --no-configuration /path/to/my/project
    Testing started at 14:53 ...
    PHP Fatal error:  Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.' in /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:183
    Stack trace:
    #0 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(315): PHPUnit_Framework_TestSuite->__construct(Object(ReflectionClass))
    #1 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(389): PHPUnit_Framework_TestSuite->addTestSuite(Object(ReflectionClass))
    #2 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(416): PHPUnit_Framework_TestSuite->addTestFile('/var/www/php-sh...')
    #3 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php(96): PHPUnit_Framework_TestSuite->addTestFiles(Array)
    #4 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php(150): PHPUnit_Runner_BaseTestRunner->getTest('/var/www/php-sh...', '', A in /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php on line 183
    
    Process finished with exit code 255
    
  • Piotr Olaszewski
    Piotr Olaszewski about 11 years
    OK, but why when I run test from console everything is OK? I'm quite sure that my test is good. When I'm using PHPUnit as including external library and set appropriate configuration in PhpStorm works fine.
  • Jeremy Harris
    Jeremy Harris about 11 years
    Your question stated that it doesn't work in PHPStorm. Perhaps you had the IDE configured incorrectly and now it works?
  • Piotr Olaszewski
    Piotr Olaszewski about 11 years
    I was configure IDE like in manual. I add dependency successfully then I set custom loader to vendor/autoload.php. That's all what I did.
  • k0pernikus
    k0pernikus almost 9 years
    It's important to notice that the path has to be set via: Run > Edit Configuration > PhpUnit There, the Directory can be set. You do not(!) find this under File > Settings in PhpStorm.