From 50a5f02e2ee0dae6512bb600a9389b2301eb0918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=CC=81bor=20Hojtsy?= <gabor@hojtsy.hu> Date: Tue, 14 May 2019 15:09:45 +0200 Subject: [PATCH] Issue #3052625 by Mile23, alexpott: DeprecationListenerTrait croaks on tests with no results --- .../Tests/Listeners/DeprecationListenerTrait.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php b/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php index ef1d94d578eb..9f60b3394d7e 100644 --- a/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php +++ b/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php @@ -175,12 +175,16 @@ protected function registerErrorHandler($test) { // SymfonyTestsListenerTrait has its own error handler that needs to be // removed before this one. $test_result_object = $test->getTestResultObject(); - $reflection_class = new \ReflectionClass($test_result_object); - $reflection_property = $reflection_class->getProperty('listeners'); - $reflection_property->setAccessible(TRUE); - $listeners = $reflection_property->getValue($test_result_object); - $listeners[] = new AfterSymfonyListener(); - $reflection_property->setValue($test_result_object, $listeners); + // It's possible that a test does not have a result object. This can happen + // when a test class does not have any test methods. + if ($test_result_object) { + $reflection_class = new \ReflectionClass($test_result_object); + $reflection_property = $reflection_class->getProperty('listeners'); + $reflection_property->setAccessible(TRUE); + $listeners = $reflection_property->getValue($test_result_object); + $listeners[] = new AfterSymfonyListener(); + $reflection_property->setValue($test_result_object, $listeners); + } } } -- GitLab