Laravel phpUnit
Когда я бегу phpunit
Команда выдает всю информацию из справки phpunit с PHPUnit 3.7.21 Себастьяна Бергманна. Поэтому я предлагаю, чтобы это работало, но пока нет;
когда я бегу
phpunit ExampleTest.php
PHP Fatal error: Class 'Tests\TestCase' not found in C:\xampp7\htdocs\projects\heroes\tests\Feature\ExampleTest.php on line 8
В Laravel у меня есть папка "тесты" с
TestCase.php
<?php
namespace Tests;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
}
папка "Feature" с
ExampleTest.php
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
}
и папка "Блок"
В корневой папке Laravel у меня есть
composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.6.*",
"laravel/tinker": "^1.0",
"laravelcollective/html": "^5.4.0",
"laravelcollective/html": "~5.0"
},
"require-dev": {
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
],
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
Мне просто нужно начать юнит-тестирование
4 ответа
Похоже, что вы используете phpunit, установленный глобально в вашей системе, который очень старый и не связан с автозагрузкой вашего проекта. Вы должны использовать phpunit, установленный в вашем проекте Composer:
vendor/bin/phpunit
Вы можете использовать это
./vendor/bin/phpunit
как это он будет запускать phpunit из корня вашего приложения
Когда я бегу
vendor\bin\phpunit
Это работает, однако было бы хорошо, если бы кто-то объяснил, почему
Сначала установите модуль PHP с помощью этой команды
композитор требует --dev phpunit/phpunit
После этого проверьте, установлен он или нет.
./vendor/bin/phpunit --версия
Более подробная информация на сайте - https://technicalguide.net/how-to-use-phpunit-in-laravel/