在Codeception堆栈跟踪中显示10个以上的调用

时间:2018-03-16 06:17:43

标签: codeception

我正在通过Codeception调试一些递归代码,它只显示最后10个调用,所以我不知道代码的路径是什么。 Xdebug将尽可能多地显示信息,所以我认为不是这样。

我还没有找到任何配置选项来增加Codeception输出中显示的堆栈跟踪级别数。

如何增加Codeception输出中的调用次数?

截断错误消息:

There was 1 error:

---------
1) Hl7MessageHeaderSegmentWriterTest: Should build a message header segment
 Test  tests\unit\HMRX\CoreBundle\Utils\Hl7Writer\Segment\Hl7MessageHeaderSegmentWriterTest.php:testShouldBuildAMessageHeaderSegment

  [PHPUnit_Framework_Exception] Object of class DateTimeImmutable could not be converted to string

#1  Codeception\Subscriber\ErrorHandler->errorHandler
#2  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:283
#3  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:251
#4  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7SimpleElementWriter.php:49
#5  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:54
#6  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:29
#7  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:54
#8  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:29
#9  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7ElementFormatter.php:54
#10 C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Segment\Hl7HeaderSegmentWriter.php:18

FAILURES!
Tests: 1, Assertions: 0, Errors: 1.

正常错误消息(注意最后一行是codecept.phar的入口点):

There was 1 error:

---------
1) Hl7MessageHeaderSegmentWriterTest: Should build a message header segment
 Test  tests\unit\HMRX\CoreBundle\Utils\Hl7Writer\Segment\Hl7MessageHeaderSegmentWriterTest.php:testShouldBuildAMessageHeaderSegment

  [Exception] foo

#1  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Data\Hl7DateTimeWrapperDataWriter.php:45
#2  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Data\Hl7TimeStampDataWriter.php:54
#3  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7DataForwarder.php:30
#4  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7DataForwarder.php:24
#5  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7DataForwarder.php:20
#6  C:\server\Apache24\htdocs\dev.hmr-app\hmrex\HMRX_App\src\HMRX\CoreBundle\Utils\Hl7Writer\Hl7DataForwarder.php:13
#7  C:\server\Apache24\htdocs\dev.hmr-app\tests\unit\HMRX\CoreBundle\Utils\Hl7Writer\Segment\Hl7MessageHeaderSegmentWriterTest.php:53
#8  HMRX\CoreBundle\Utils\Hl7Writer\Hl7MessageHeaderSegmentWriterTest->testShouldBuildAMessageHeaderSegment
#9  C:\usr\bin\codecept.phar:7

FAILURES!
Tests: 1, Assertions: 0, Errors: 1.

来自phpinfo()的Xdebug配置:

xdebug

xdebug support => enabled
Version => 2.5.5

Supported protocols => Revision
DBGp - Common DeBuGger Protocol => $Revision: 1.145 $

Directive => Local Value => Master Value
xdebug.auto_trace => Off => Off
xdebug.cli_color => 0 => 0
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.coverage_enable => On => On
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.extended_info => On => On
xdebug.file_link_format => no value => no value
xdebug.force_display_errors => Off => Off
xdebug.force_error_reporting => 0 => 0
xdebug.halt_level => 0 => 0
xdebug.idekey => no value => no value
xdebug.max_nesting_level => 256 => 256
xdebug.max_stack_frames => -1 => -1
xdebug.overload_var_dump => 2 => 2
xdebug.profiler_aggregate => Off => Off
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => Off => Off
xdebug.profiler_enable_trigger => Off => Off
xdebug.profiler_enable_trigger_value => no value => no value
xdebug.profiler_output_dir => \ => \
xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p
xdebug.remote_addr_header => no value => no value
xdebug.remote_autostart => Off => Off
xdebug.remote_connect_back => Off => Off
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => localhost => localhost
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
xdebug.scream => Off => Off
xdebug.show_error_trace => Off => Off
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => Off => Off
xdebug.trace_enable_trigger => Off => Off
xdebug.trace_enable_trigger_value => no value => no value
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => \ => \
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.var_display_max_children => -1 => -1
xdebug.var_display_max_data => -1 => -1
xdebug.var_display_max_depth => -1 => -1

2 个答案:

答案 0 :(得分:1)

使用-vvv标志运行代码以获得完整的堆栈跟踪。

答案 1 :(得分:0)

数字$limit = 10硬编码在\Codeception\Subscriber\Console::printExceptionTrace

您可以暂时将数字修改为更高。

$this->rawStackTrace是通过-vvv Symfony Console参数设置的代码接收标志,它绕过了有限的渲染循环并仅转储原始堆栈跟踪。

这两个方法也都跳过了\PHPUnit\Util\Filter::$filteredClassesPattern中定义的过滤后的类,因此您可以向该数组中添加更多的类以删除应用程序内容(如果这就是phar调用的意思,那么我就不使用phar ,我正在通过更易于编辑的composer使用它。