Я вижу странную ошибку с одним написанным тестом 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
Почему этот простой метод внезапно вызывает проблему с памятью?У кого-нибудь есть идеи?