Skip to content

Commit

Permalink
Show origin of warning in error message
Browse files Browse the repository at this point in the history
Fixes #6090
  • Loading branch information
Naktibalda committed Jan 23, 2021
1 parent 3579d06 commit 49254ca
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/Codeception/Subscriber/ErrorHandler.php
Expand Up @@ -80,7 +80,8 @@ public function errorHandler($errno, $errstr, $errfile, $errline, $context = arr
return false;
}

throw new \PHPUnit\Framework\Exception($errstr, $errno);
$relativePath = codecept_relative_path($errfile);
throw new \PHPUnit\Framework\Exception("$errstr at $relativePath:$errline", $errno);
}

public function shutdownHandler()
Expand Down
26 changes: 25 additions & 1 deletion tests/unit/Codeception/Subscriber/ErrorHandlerTest.php
Expand Up @@ -5,8 +5,20 @@
use Codeception\Subscriber\ErrorHandler;
use Codeception\Suite;

class ErrorHandlerTest extends \PHPUnit\Framework\TestCase
class ErrorHandlerTest extends \Codeception\PHPUnit\TestCase
{
private $originalErrorLevel;

public function _setUp()
{
$this->originalErrorLevel = error_reporting();
}

public function _tearDown()
{
// Deprecation message test changes error_level
error_reporting($this->originalErrorLevel);
}

public function testDeprecationMessagesRespectErrorLevelSetting()
{
Expand All @@ -23,4 +35,16 @@ public function testDeprecationMessagesRespectErrorLevelSetting()

$this->assertEquals([], Notification::all(), 'Deprecation message was added to notifications');
}

public function testShowsLocationOfWarning()
{
if (PHP_MAJOR_VERSION === 5) {
$this->expectException(\PHPUnit_Framework_Exception::class);
} else {
$this->expectException(\PHPUnit\Framework\Exception::class);
}
$SEP = DIRECTORY_SEPARATOR;
$this->expectExceptionMessage("Undefined variable: file at tests{$SEP}unit{$SEP}Codeception{$SEP}Subscriber{$SEP}ErrorHandlerTest.php:48");
trigger_error('Undefined variable: file', E_USER_WARNING);
}
}

0 comments on commit 49254ca

Please sign in to comment.