Reputation: 371
I get the following error when I run phpunit with Laravel 4.
PHP Fatal error: Class 'Illuminate\Foundation\Testing\TestCase' not found in
composer.json
"require": {
"laravel/framework": "4.0.*",
"phpunit/phpunit": "3.7.*"
},
app.php
'Illuminate\Foundation\Testing\TestCase'
What ı should do?
Upvotes: 3
Views: 7557
Reputation: 349
It looks like the autoload doesn't include the new requirement.
Be sure to run composer update
to ensure that the file are downloaded and the autoloader is updated with that source.
If the files were downloaded and 'installed' manually run php composer dump-autoload
to rebuild the autoload file.
Upvotes: 3
Reputation: 481
I just ran into the same problem, so I thought I'd post my solution, even though it might be a different solution to what you were after.
I wanted to autoload my own libraries, so I added the following to my composer.json:
"autoload": {
"psr-0": {
"Fhc": "app"
}
},
What I didn't realise was that just above that line was the following:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
},
In essence, my modification had completely overridden the the code above. The solution was to merge the two together (as I should have done to begin with).
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"psr-0": {
"Fhc": "app"
}
},
Now it's all working as expected.
I hope this helps anyone else in the same situation.
Upvotes: 2
Reputation: 3230
Try to remove your "vendor" folder and the file named composer.lock after that run:
composer install
Pay attention to the output produced by composer.
Upvotes: 0