Skip to content

Commit 3a55648

Browse files
authored
Merge pull request #5201 from magento-trigger/MC-30288
- fixed Hidden PHP Notice and Warning in tests
2 parents 49477e9 + 1c881cf commit 3a55648

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

dev/tests/integration/framework/Magento/TestFramework/Event/Transaction.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
* See COPYING.txt for license details.
55
*/
66

7+
namespace Magento\TestFramework\Event;
8+
79
/**
810
* Database transaction events manager
911
*/
10-
namespace Magento\TestFramework\Event;
11-
1212
class Transaction
1313
{
1414
/**
@@ -86,14 +86,29 @@ protected function _processTransactionRequests($eventName, \PHPUnit\Framework\Te
8686
* Start transaction and fire 'startTransaction' event
8787
*
8888
* @param \PHPUnit\Framework\TestCase $test
89+
* @SuppressWarnings(PHPMD.UnusedLocalVariable)
8990
*/
9091
protected function _startTransaction(\PHPUnit\Framework\TestCase $test)
9192
{
9293
if (!$this->_isTransactionActive) {
9394
$this->_getConnection()->beginTransparentTransaction();
9495
$this->_isTransactionActive = true;
9596
try {
97+
/**
98+
* Add any warning during transaction execution as a failure.
99+
*/
100+
set_error_handler(
101+
function ($errNo, $errStr, $errFile, $errLine) use ($test) {
102+
$errMsg = sprintf("%s: %s in %s:%s.", "Warning", $errStr, $errFile, $errLine);
103+
$test->getTestResultObject()->addError($test, new \PHPUnit\Framework\Warning($errMsg), 0);
104+
105+
// Allow error to be handled by next error handler
106+
return false;
107+
},
108+
E_WARNING
109+
);
96110
$this->_eventManager->fireEvent('startTransaction', [$test]);
111+
restore_error_handler();
97112
} catch (\Exception $e) {
98113
$test->getTestResultObject()->addFailure(
99114
$test,

dev/tests/integration/phpunit.xml.dist

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@
7878
</php>
7979
<!-- Test listeners -->
8080
<listeners>
81-
<listener class="Magento\TestFramework\Event\PhpUnit"/>
82-
<listener class="Magento\TestFramework\ErrorLog\Listener"/>
8381
<listener class="Yandex\Allure\Adapter\AllureAdapter">
8482
<arguments>
8583
<string>var/allure-results</string> <!-- XML files output directory -->
@@ -127,5 +125,8 @@
127125
</array>
128126
</arguments>
129127
</listener>
128+
<!-- Run after AllureAdapter to allow it to initialize properly -->
129+
<listener class="Magento\TestFramework\Event\PhpUnit"/>
130+
<listener class="Magento\TestFramework\ErrorLog\Listener"/>
130131
</listeners>
131132
</phpunit>

0 commit comments

Comments
 (0)