Telemetry has few suites of unit tests:
These are functional tests that do not depend on performance.
TabCrashException
or BrowserGoneException
), this is guaranteed to be a browser issue. Usually scanning the change log for patches that touch files that show up in the stack will point to the culprit to revert.$ catapult/telemetry/run_tests <test> --browser=<browser> --chrome-root=<path to chromium src/ dir>
Where <test>
can be: BrowserTest.testForegroundTab
or BrowserTest
as a “wildcard” by matching the sub string "BrowserTest"
. Where <path to chromium src/ dir>
is the full path including the src/
at the end and <browser>
can be: release
, android-chrome-shell
, list
(for a full list)Tests should generally only be disabled for flakiness. Consistent failures should be diagnosed and the culprit reverted.
The @decorators.Disabled
and @decorators.Enabled
decorators may be added above any test to enable or disable it. They optionally accept a list of platforms, os versions or browser types. Examples:
from telemetry import decorators ...
@decorators.Disabled('all')
# Disabled everywhere@decorators.Enabled('mac')
# Only runs on mac@decorators.Disabled('xp')
# Run everywhere except windows xp@decorators.Disabled('debug')
# Run everywhere except debug builds