Why, Fatal error: Class 'PHPUnit_Framework_TestCase' not found in …?

后端 未结 13 1117
攒了一身酷
攒了一身酷 2020-11-29 19:23

Why I\'m getting this PHP error?

Fatal error: Class \'PHPUnit_Framework_TestCase\' not found in ...
13条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-29 20:06

    It may well be that you're running WordPress core tests, and have recently upgraded your PhpUnit to version 6. If that's the case, then the recent change to namespacing in PhpUnit will have broken your code.

    Fortunately, there's a patch to the core tests at https://core.trac.wordpress.org/changeset/40547 which will work around the problem. It also includes changes to travis.yml, which you may not have in your setup; if that's the case then you'll need to edit the .diff file to ignore the Travis patch.

    1. Download the "Unified Diff" patch from the bottom of https://core.trac.wordpress.org/changeset/40547
    2. Edit the patch file to remove the Travis part of the patch if you don't need that. Delete from the top of the file to just above this line:

      Index: /branches/4.7/tests/phpunit/includes/bootstrap.php
      
    3. Save the diff in the directory above your /includes/ directory - in my case this was the Wordpress directory itself

    4. Use the Unix patch tool to patch the files. You'll also need to strip the first few slashes to move from an absolute to a relative directory structure. As you can see from point 3 above, there are five slashes before the include directory, which a -p5 flag will get rid of for you.

      $ cd [WORDPRESS DIRECTORY]
      $ patch -p5 < changeset_40547.diff 
      

    After I did this my tests ran correctly again.

提交回复
热议问题