#php #laravel #phpunit
#laravel #laravel-5.4
Вопрос:
Попробуйте написать модульный тест, и мне нужно выполнить SQL-запрос
class UpdateThrowsTest extends TestCase
{
protected $bgame;
protected $game_id = 95;
public function setUp(){
$game = new Game();
$game = $game::find($this->game_id);
}
}
а затем я пишу «phpunit» в консоли и пытаюсь исключить
Вызов функции-члена connection() при нулевом значении.
Комментарии:
1. Вам необходимо настроить подключение к базе данных для тестов.
2. спасибо, но я не знаю, как это сделать:(
3. Вы можете установить подключение к базе данных по умолчанию в файле .env. Но обычно мы устанавливаем другую базу данных для тестирования, которая была бы определена в phpunit.xml .
4. Судя по вашему коду, создается впечатление, что вы новичок в тестировании. Тестирование включает в себя работу с полностью отделенной базой данных от вашей основной базы данных. Вы генерируете данные в тесте и используете их для запуска дополнительных тестов или других условий. Хотя для начала вам не нужно слишком беспокоиться. Но вам определенно следует прочитать немного больше о тестировании.
5. это мой первый тест
Ответ №1:
Если кто-нибудь столкнется с этой ошибкой во время тестирования с проектом Laravel 6.
Попробуйте проверить, использует ли расширенный тестовый набор правильный тестовый набор. Это может быть связано с тем, что Laravel 6 make:test сгенерировал тест с использованием неправильного TestCase.
Изменение
use PHPUnitFrameworkTestCase;
Для
use TestsTestCase;
Проблема должна решиться.
Комментарии:
1. Ты — моя палочка-выручалочка. Я потратил несколько дней, пытаясь понять, почему наши тесты не будут выполняться в Laravel 6.
Ответ №2:
У меня была эта ошибка в laravel 7 (ничего не работало, даже php artisan serve), и я исправил ее с помощью
composer dumpautoload
Перед этим обновите моего поставщика обновлением composer, а затем все работало нормально.
Комментарии:
1. Вы отвечаете на вопрос, который был задан 3 года назад для laravel 5.4 плюс, я очень уверен, что это не решение вопроса (проблема с подключением к базе данных, а не с загрузкой классов)