0
votes

I have PHPUnit set up in my PHPStorm project. I've referenced the PHPUnit phar file and have a PHP executable linked to my PHPStorm run configuration. My directory structure looks like:

/lib/classes/Class.php
/lib/vendor/phpunit.phar
/lib/test/ClassTest.php

In my ClassTest.php file, I reference the other two files with:

require_once (__DIR__ . "../vendor/phpunit.phar");
require_once (__DIR__ . "../classes/Class.php");

I get the following error when I run my test:

Fatal error: require_once(): Failed opening required 
'C:\Users\me\PhpstormProjects\myproject\lib\tests../vendor/phpunit.phar'

It seems like the PHP parser isn't correctly parsing the up one directory ../ command.

Why is this happening?

1
Does the path need to be like tests/../vendor instead of tests../vendor? - Don't Panic

1 Answers

0
votes

First of all: this line is not needed (at all) as PHPUnit will already be loaded at that time.

require_once (__DIR__ . "../vendor/phpunit.phar");

Secondly: __DIR__ constant in PHP does not contain trailing slash. When used in require/include statements (and other places when building full file path) you have to add it yourself.

In your particular case it has to be (note / before ..):

require_once (__DIR__ . "/../classes/Class.php");