Serialization of 'Closure' is not allowed
snez opened this issue · 1 comments
snez commented
We have started noticing failures in our test suite about a week ago, with no changes on our side. After investigation, we found the problem to have been caused by the release of v4.3.0 of the Magento functional testing framework. After downgrading to v4.2.1, the problem was resolved. Reporting the details here for reference.
Preconditions
- Magento 2.4.6
- PHP 8.2
- v4.3.0 of the framework
Steps to reproduce
- Implement an MFTF test which fails intentionally. Successful tests do not have this problem
- Add the test in a test suite, with at least one more test after it
Expected result
- The test should fail with a recorded screenshot
- The next test should start
Actual result
- The test fails, and the entire test suite stops in its track, preventing allure reports from being generated. Example below:
[waitForFullScreenIframe] wait for element "//iframe[@name='acsFrame']",30
[saveScreenshot] save screenshot
[] [START AFTER HOOK]
[] [logoutStorefront] StorefrontCustomerLogoutActionGroup
[storefrontSignOut] am on page "customer/account/logout/"
[waitForSignOut] wait for page load 60
[END AFTER HOOK]
ERROR
--------------------------------------------------------------------------------
In AllureHelper.php line 26:
[Exception]
Serialization of 'Closure' is not allowed
Exception trace:
at vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Allure/AllureHelper.php:26
serialize() at vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Allure/AllureHelper.php:26
Magento\FunctionalTestingFramework\Allure\AllureHelper::addAttachmentToCurrentStep() at vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Extension/TestContextExtension.php:268
Magento\FunctionalTestingFramework\Extension\TestContextExtension->attachExceptionToAllure() at vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Extension/TestContextExtension.php:139
Magento\FunctionalTestingFramework\Extension\TestContextExtension->testEnd() at vendor/symfony/event-dispatcher/EventDispatcher.php:206
Symfony\Component\EventDispatcher\EventDispatcher->callListeners() at vendor/symfony/event-dispatcher/EventDispatcher.php:56
Symfony\Component\EventDispatcher\EventDispatcher->dispatch() at vendor/codeception/codeception/src/Codeception/Test/Test.php:243
Codeception\Test\Test->realRun() at vendor/codeception/codeception/src/Codeception/Suite.php:130
Codeception\Suite->run() at vendor/codeception/codeception/src/Codeception/SuiteManager.php:148
Codeception\SuiteManager->run() at vendor/codeception/codeception/src/Codeception/Codecept.php:260
Codeception\Codecept->runSuite() at vendor/codeception/codeception/src/Codeception/Codecept.php:216
Codeception\Codecept->run() at vendor/codeception/codeception/src/Codeception/Command/Run.php:646
Codeception\Command\Run->runSuites() at vendor/codeception/codeception/src/Codeception/Command/Run.php:467
Codeception\Command\Run->execute() at vendor/symfony/console/Command/Command.php:298
Symfony\Component\Console\Command\Command->run() at vendor/symfony/console/Application.php:1040
Symfony\Component\Console\Application->doRunCommand() at vendor/symfony/console/Application.php:301
Symfony\Component\Console\Application->doRun() at vendor/symfony/console/Application.php:171
Symfony\Component\Console\Application->run() at vendor/codeception/codeception/src/Codeception/Application.php:112
Codeception\Application->run() at vendor/codeception/codeception/app.php:45
{closure}() at vendor/codeception/codeception/app.php:46
require() at vendor/codeception/codeception/codecept:7
include() at vendor/bin/codecept:120
m2-assistant commented
Hi @snez. Thank you for your report.
To speed up processing of this issue, make sure that you provided sufficient information.
Add a comment to assign the issue: @magento I am working on this
Join Magento Community Engineering Slack and ask your questions in #github channel.