http://localhost/laravel/app/tests/ExampleTest.php
if i run laravel it shows the following error
Fatal error: Class 'TestCase' not found in D:\xampp\htdocs\laravel\app\tests\ExampleTest.php on line 3 , any idea
http://localhost/laravel/app/tests/ExampleTest.php
if i run laravel it shows the following error
Fatal error: Class 'TestCase' not found in D:\xampp\htdocs\laravel\app\tests\ExampleTest.php on line 3 , any idea
In my case, i noticed that my root folder not contained the phpunit.xml file.
Solve it including the following code in phpunit.xml at the root folder:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Application Test Suite">
<directory>./app/tests/</directory>
</testsuite>
</testsuites>
</phpunit>
You haven't really given much information to go on here, but the specific problem is probably that you don't have an autoloader (thus the TestCase
class that PHP is expecting isn't actually loaded. The underlying problem in turn is likely that you're trying to run ExampleTest.php
directly on the terminal, whereas instead you must bootstrap a test environment correctly through Laravel and PHPUnit.
You should find a phpunit.xml file in the root of your Laravel install. This file tells PHPUnit how to bootstrap and start executing tests for your application, so you should just be able to run phpunit
on the command line in the root of your application and it should work.
If that's not the issue, please do provide more detail for people to help with.
Had the same issue with PHPUnit, he would output always the same message : PHP Fatal error: Class 'Tests\TestCase' not found ...
and indeed I think he had troubles to find that class so what you need to do is transform one line :
From this :
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class AnotherTest extends TestCase {
public function testExample() {
// Do something
}
}
To this :
<?php
namespace Tests\Feature;
use PHPUnit\Framework\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class AnotherTest extends TestCase {
public function testExample() {
// Do something
}
}
Notice the first line in use and you should do this if there's any other files in the same case
I had same issue, you should run test from root folder, in your case 'http://localhost/laravel' and in terminal you just need to write phpunit, and test will be executed.
I got the same error but none worked,
except for this one, this worked for me,
I tried reinstalling and upgrading my phpunit in Laravel 5.4,
modify compose.json -> find these line and change the phpunit version
"require-dev": { "phpunit/phpunit": "~6.4" },
after editing, run on your cmd,
composer update
then run
composer dump-autoload
php artisan config:clear
php artisan cache:clear
finally,
run phpunit
or run specific unit, phpunit --filter yourTestCaseClass
The is caused by an outdated phpunit. If you using a globally installed phpunit, here is a link on how to update it https://stackoverflow.com/a/40701333/3792206 . Or you can explicitly use the phpunit that was installed with the project.