getResourcePath($fileName); $reader = ReaderEntityFactory::createXLSXReader(); $reader->open($resourcePath); $numReadRows = 0; /** @var Sheet $sheet */ foreach ($reader->getSheetIterator() as $sheet) { foreach ($sheet->getRowIterator() as $row) { $numReadRows++; } } $reader->close(); $expectedNumRows = 300000; $this->assertEquals($expectedNumRows, $numReadRows, "$expectedNumRows rows should have been read"); $executionTime = time() - $startTime; $this->assertTrue($executionTime < $expectedMaxExecutionTime, "Reading 300,000 rows should take less than $expectedMaxExecutionTime seconds (took $executionTime seconds)"); $memoryPeakUsage = memory_get_peak_usage(true) - $beforeMemoryPeakUsage; $this->assertTrue($memoryPeakUsage < $expectedMaxMemoryPeakUsage, 'Reading 300,000 rows should require less than ' . ($expectedMaxMemoryPeakUsage / 1024 / 1024) . ' MB of memory (required ' . ($memoryPeakUsage / 1024 / 1024) . ' MB)'); } }