tools/scripts/phpunit-ls - Fix PhpStorm lookup of PHPUnit_Framework_TestCase
authorTim Otten <totten@civicrm.org>
Wed, 14 Dec 2016 00:11:33 +0000 (16:11 -0800)
committerTim Otten <totten@civicrm.org>
Wed, 14 Dec 2016 00:18:51 +0000 (16:18 -0800)
When using PhpStorm, code completion doesn't work smoothly on classes which
extend `PHPUnit_Framework_TestCase` because there are two copies: the real
copy and then a placeholder class used by `tools/scripts/phpunit-ls`.

Wrapping the placeholder copy in `eval()` prevents PhpStorm from
identifying.

tools/scripts/phpunit-ls

index cc617906a8fd8516717b87cd3055ffb2ae5aca7f..fef0efc1b9cff72be04708709246c46203f103f5 100755 (executable)
@@ -9,9 +9,12 @@ if (!class_exists('PHPUnit_Framework_TestCase')) {
   // but the scanner will try to read metadata about our test-classes, and
   // that requires having the parent-classes defined.
 
+  // Note: Use eval() to prevent IDE scanners from tripping up on this.
+  eval('
   class PHPUnit_Framework_TestCase {}
   class PHPUnit_Extensions_Database_TestCase {}
   class PHPUnit_Extensions_SeleniumTestCase {}
+  \');
 }
 
 \Civi\CiUtil\Command\LsCommand::main($argv);
\ No newline at end of file