Debug tests
Stay organized with collections
Save and categorize content based on your preferences.
The main way to solve problems in your tests is to look at the semantics tree.
Print the tree by calling composeTestRule.onRoot().printToLog()
at
any point in your test. This function prints a log like this:
Node #1 at (...)px
|-Node #2 at (...)px
OnClick = '...'
MergeDescendants = 'true'
|-Node #3 at (...)px
| Text = 'Hi'
|-Node #5 at (83.0, 86.0, 191.0, 135.0)px
Text = 'There'
These logs contain valuable information for tracking bugs down.
Additional Resources
- Test apps on Android: The main Android testing
landing page provides a broader view of testing fundamentals and techniques.
- Fundamentals of testing: Learn more
about the core concepts behind testing an Android app.
- Local tests: You can run some tests
locally, on your own workstation.
- Instrumented tests: It is good
practice to also run instrumented tests. That is, tests that run directly
on-device.
- Continuous integration:
Continuous integration lets you integrate your tests into your deployment
pipeline.
- Test different screen sizes: With
some many devices available to users, you should test for different screen
sizes.
- Espresso: While intended for View-based
UIs, Espresso knowledge can still be helpful for some aspects of Compose
testing.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-10-03 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
{"lastModified": "Last updated 2024-10-03 UTC."}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-03 UTC."]]