From 15bb615e376f74c814333400576539a73ea9d8d9 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sat, 7 Sep 2019 12:55:21 +0200 Subject: [PATCH 1/2] Document the fact that $suite->tests() only contains TestCase objects at this point --- src/Runner/TestSuiteSorter.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Runner/TestSuiteSorter.php b/src/Runner/TestSuiteSorter.php index 9607d1d3f82..d467ac62b80 100644 --- a/src/Runner/TestSuiteSorter.php +++ b/src/Runner/TestSuiteSorter.php @@ -177,7 +177,10 @@ private function sort(TestSuite $suite, int $order, bool $resolveDependencies, i } if ($resolveDependencies && !($suite instanceof DataProviderTestSuite) && $this->suiteOnlyContainsTests($suite)) { - $suite->setTests($this->resolveDependencies($suite->tests())); + /** @var TestCase[] $tests */ + $tests = $suite->tests(); + + $suite->setTests($this->resolveDependencies($tests)); } } From 7ed7374d490d8fa6a8908cc53f4163e8ad27a31b Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sat, 7 Sep 2019 12:59:56 +0200 Subject: [PATCH 2/2] Fix issue identified by Psalm --- src/Framework/DataProviderTestSuite.php | 4 ++++ src/Framework/TestSuite.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Framework/DataProviderTestSuite.php b/src/Framework/DataProviderTestSuite.php index af119d27fc1..15380b5a20c 100644 --- a/src/Framework/DataProviderTestSuite.php +++ b/src/Framework/DataProviderTestSuite.php @@ -24,6 +24,10 @@ public function setDependencies(array $dependencies): void $this->dependencies = $dependencies; foreach ($this->tests as $test) { + if (!$test instanceof TestCase) { + continue; + } + $test->setDependencies($dependencies); } } diff --git a/src/Framework/TestSuite.php b/src/Framework/TestSuite.php index 46fbdec8a73..6f4b243b7c1 100644 --- a/src/Framework/TestSuite.php +++ b/src/Framework/TestSuite.php @@ -61,7 +61,7 @@ class TestSuite implements IteratorAggregate, SelfDescribing, Test /** * The tests in the test suite. * - * @var TestCase[] + * @var Test[] */ protected $tests = [];