Laravel и PHPUnit - допустимый объем памяти 134217728 байт исчерпан - PullRequest
0 голосов
/ 04 июня 2019

Я вижу странную ошибку с одним написанным тестом PHPUnit.У меня есть набор тестов из 346 тестов.Когда я запускаю все тесты с vendor/bin/phpunit, все работает нормально.Все тесты используют 68.00 MB памяти.Один из тестовых классов в наборе - tests/Unit/Jobs/ProcessShipStationAmazonSFWebhookTest.php.В этом классе есть один тест.Когда я запускаю этот тест сам по себе, он также работает нормально:

vendor/bin/phpunit tests/Unit/Jobs/ProcessShipStationAmazonSFWebhookTest.php

Теперь вот выдержка из теста в этом классе:

Queue::assertPushedOn('webhooks', ProcessShipStationSFShipment::class, function ($job) {
    return $job->shipment['shipmentId'] == 1;
});

Queue::assertPushedOn('webhooks', ProcessShipStationSFShipment::class, function ($job) {
    return $job->shipment['shipmentId'] == 2;
});

Queue::assertPushedOn('webhooks', ProcessShipStationSFShipment::class, function ($job) {
    return $job->shipment['shipmentId'] == 3;
});

Опять же,это отлично работаетТеперь единственное изменение, которое я делаю, - это перейти к последнему утверждению и изменить его с assertPushedOn на assertNotPushedOn, например:

Queue::assertNotPushedOn('webhooks', ProcessShipStationSFShipment::class, function ($job) {
    return $job->shipment['shipmentId'] == 3;
});

Когда я делаю это и снова запускаю тест, я получаюошибка об объеме памяти:

vendor/bin/phpunit tests/Unit/Jobs/ProcessShipStationAmazonSFWebhookTest.php

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /root/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php on line 0

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /root/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php on line 122

Почему этот простой метод внезапно вызывает проблему с памятью?У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 04 июня 2019

Метод assertNotPushedOn не определен в рамках Laravel.Может быть, ошибка в том, что PHP пытается выдать исключение вместо этого?

Или, если вы определили этот метод, будет полезно увидеть реализацию этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...