Skip to content

Instrumented failed test output is truncated rendering it useless. #1041

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
GrzegDev opened this issue Aug 12, 2021 · 2 comments
Closed

Instrumented failed test output is truncated rendering it useless. #1041

GrzegDev opened this issue Aug 12, 2021 · 2 comments

Comments

@GrzegDev
Copy link

Description

see the subject

Steps to Reproduce

run a failing test with a view hierarchy large enough

Expected Results

full view hierarchy followed by a stack trace to a failed function

Actual Results

truncated view hierarchy; example:
androidx.test.espresso.NoMatchingViewException: No views in hierarchy found matching: (view.getParent() view.getId() is <2131296782/app.grzegdev.dartsapp.bed_practice.test:id/toolbar> and an instance of android.widget.TextView and view.getText() with or without transformation to match: is "Doubles Stats #1 of 3")

View Hierarchy:
+>DecorView{id=-1, visibility=VISIBLE, width=1220, height=2643, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(0,0)(fillxfill) ty=BASE_APPLICATION wanim=0x10302fe
fl=LAYOUT_IN_SCREEN LAYOUT_INSET_DECOR SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
pfl=FORCE_DRAW_STATUS_BAR_BACKGROUND}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+->LinearLayout{id=-1, visibility=VISIBLE, width=1220, height=2595, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@75a1821, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+-->ViewStub{id=16908692, res-name=action_mode_bar_stub, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=true, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@f3c8446, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
|
+-->FrameLayout{id=-1, visibility=VISIBLE, width=1220, height=2523, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@135d607, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=72.0, child-count=1}
|
+--->FitWindowsLinearLayout{id=2131296308, res-name=action_bar_root, visibility=VISIBLE, width=1220, height=2523, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@41f155d, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+---->ViewStubCompat{id=2131296320, res-name=action_mode_bar_stub, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=true, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@cac9ed2, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
|
+---->ContentFrameLayout{id=16908290, res-name=content, visibility=VISIBLE, width=1220, height=2523, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@64fcba3, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+----->CoordinatorLayout{id=2131296449, res-name=coordinator, visibility=VISIBLE, width=1220, height=2523, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@3178ea0, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+------>AppCompatImageView{id=2131296370, res-name=background, desc=background with dartboard of water and fire, visibility=VISIBLE, width=1220, height=2523, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams@e3caa59, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
|
+------>AppBarLayout{id=2131296362, res-name=app_bar, visibility=VISIBLE, width=1220, height=168, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams@591d61e, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+------->Toolbar{id=2131296782, res-name=toolbar, visibility=VISIBLE, width=1220, height=168, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=com.google.android.material.appbar.AppBarLayout$LayoutParams@7897eff, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=4}
|
+-------->AppCompatTextView{id=-1, visibility=VISIBLE, width=534, height=81, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.Toolbar$LayoutParams@276f4cc, tag=null, root-is-layout-requested=false, has-input-connection=false, x=216.0, y=12.0, text=Doubles Stats #1/3, input-type=0, ime-target=false, has-links=false}
|
+-------->AppCompatImageButton{id=-1, desc=Navigate up, visibility=VISIBLE, width=168, height=168, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.Toolbar$LayoutParams@d049315, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
|
+-------->AppCompatTextView{id=-1, visibility=VISIBLE, width=620, height=63, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.Toolbar$LayoutParams@701362a, tag=null, root-is-layout-requested=false, has-input-connection=false, x=216.0, y=93.0, text=Jun 25, 2021 5:53 PM - 0 min, input-type=0, ime-target=false, has-links=false}
|
+-------->ActionMenuView{id=-1, visibility=VISIBLE, width=264, height=168, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.Toolbar$LayoutParams@8810c1b, tag=null, root-is-layout-requested=false, has-input-connection=false, x=956.0, y=0.0, child-count=2}
|
+--------->ActionMenuItemView{id=2131296328, res-name=action_settings, desc=Last X Weeks Accuracy Setting, visibility=VISIBLE, width=144, height=144, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.ActionMenuView$LayoutParams@88491b8, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=12.0, text=, input-type=0, ime-target=false, has-links=false}
|
+--------->OverflowMenuButton{id=-1, desc=More options, visibility=VISIBLE, width=120, height=144, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.ActionMenuView$LayoutParams@1284b91, tag=null, root-is-layout-requested=false, has-input-connection=false, x=144.0, y=12.0}
|
+------>FrameLayout{id=2131296344, res-name=activity_content, visibility=VISIBLE, width=1220, height=2355, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams@8548af6, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=168.0, child-count=1}
|
+------->CoordinatorLayout{id=-1, visibility=VISIBLE, width=1220, height=2355, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@e9a4ef7, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+-------->ConstraintLayout{id=-1, visibility=VISIBLE, width=1220, height=2355, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams@5cd1164, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+--------->MyAdView{id=2131296351, res-name=ad_view_stats, visibility=VISIBLE, width=1220, height=300, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@af50fcd, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=6.0, child-count=1}
|
+---------->FrameLayout{id=2131296349, res-name=ad_view_container, desc=Advertisement, visibility=VISIBLE, width=1220, height=300, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@ab66082, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+----------->MaterialTextView{id=2131296350, res-name=ad_view_placeholder, visibility=VISIBLE, width=1220, height=300, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@79ae393, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, text=Advertisement
Emulator, input-type=0, ime-target=false, has-links=false}
|
+----------->AdView{id=-1, visibility=VISIBLE, width=1220, height=300, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@4fbdfd0, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+------------>FrameLayout{id=-1, visibility=VISIBLE, width=0, height=0, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.view.ViewGroup$LayoutParams@84fdbc9, tag=null, root-is-layout-requested=false, has-input-connection=false, x=610.0, y=150.0, child-count=0}
|
+--------->NestedScrollView{id=2131296686, res-name=scroll_view, visibility=VISIBLE, width=1220, height=2037, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@56e02ce, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=318.0, child-count=1}
|
+---------->LinearLayoutCompat{id=-1, visibility=VISIBLE, width=1220, height=2638, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@e0625ef, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=6}
|
+----------->MaterialTextView{id=2131296458, res-name=dartboard_chart_heading, visibility=VISIBLE, width=1220, height=65, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.LinearLayoutCompat$LayoutParams@e0728fc, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, text=Accuracy Dartboard Chart, input-type=0, ime-target=false, has-links=false}
|
+----------->FragmentContainerView{id=2131296457, res-name=dartboard_chart_fragment, visibility=VISIBLE, width=1172, height=1256, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.LinearLayoutCompat$LayoutParams@6716b85, tag=dartboard_chart_fragment, root-is-layout-requested=false, has-input-connection=false, x=24.0, y=77.0, child-count=1}
|
+------------>DartboardChart{id=2131296456, res-name=dartboard_chart, visibility=VISIBLE, width=1172, height=1256, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@aeb7dda, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=0}
|
+----------->MaterialTextView{id=2131296372, res-name=bar_chart_heading, visibility=VISIBLE, width=1220, height=65, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.LinearLayoutCompat$LayoutParams@739320b, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1381.0, text=Accuracy Bar Chart, input-type=0, ime-target=false, has-links=false}
|
+----------->PortraitBarChart{id=2131296371, res-name=bar_chart, visibility=VISIBLE, width=1172, height=380, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.LinearLayoutCompat$LayoutParams@1bd8e8, tag=null, root-is-layout-requested=false, has-input-connection=false, x=24.0, y=1458.0, child-count=0}
|
+----------->MaterialTextView{id=2131296740, res-name=table_heading, visibility=VISIBLE, width=1220, height=65, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.LinearLayoutCompat$LayoutParams@3623b01, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1898.0, text=Accuracy Table, input-type=0, ime-target=false, has-links=false}
|
+----------->TableLayout{id=2131296734, res-name=stats_table, visibility=VISIBLE, width=1172, height=483, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.appcompat.widget.LinearLayoutCompat$LayoutParams@2939da6, tag=null, root-is-layout-requested=false, has-input-connection=false, x=24.0, y=1975.0, child-cou

AndroidX Test and Android OS Versions

androidTestImplementation "androidx.test.espresso:espresso-contrib:3.4.0"
androidTestImplementation "androidx.test.espresso:espresso-intents:3.4.0"
androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-web:3.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.4.0'
androidTestImplementation "androidx.test:runner:1.4.0"

Android 10.0

Link to a public git repo demonstrating the problem:

@brettchabot
Copy link
Collaborator

This is unfortunately working as expected. Large test error messages need to be truncated to overflow the Binder transaction limit. See #269

That being said its obviously a poor experience to just truncate the message. At minimum we should be able to save a file or logcat containing the full error message.

@brettchabot
Copy link
Collaborator

Actually it looks like e25a980 already fixes espresso to dump the whole view hierarchy to a file.

Please try out the imminent espresso 3.5.0-alpha01 release and let us know if this issue is addressed by that solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants