Quick Reference
Supported Annotations
Annotations use the standard Playwrightannotation array. All types use the testdino: prefix.
Note
testdino:notify-slack triggers Slack notifications when configured. testdino:metric tracks numeric values over time with charts. All other annotation types display in the TestDino UI for reference.Add Annotations to Tests
Add theannotation array to any Playwright test. Each entry has a type (the annotation name) and a description (the value):
tests/navbar.spec.ts
Slack Notification Targets
Custom Metrics
Themetric annotation type tracks custom numeric values across test runs. Unlike other annotations that store text, metrics store structured data (name, value, unit, optional threshold). TestDino shows each metric in the Annotations panel on the test case and plots a time-series chart per metric name.
Use metrics to track anything you measure during a test: page load time, API latency, memory usage, bundle size, Lighthouse scores, or business numbers like conversion rate.
Metric Format
Thetestdino:metric annotation uses a JSON string as the description:
Supported Units
Static vs. Runtime Metrics
You can set metric values in two ways depending on your use case. Static values go in the annotation array at test declaration. Use this for values you know ahead of time or compute before the test:tests/static-metric.spec.ts
test.info().annotations.push(). Use this for performance timings, API latency, or anything captured at execution time:
tests/performance.spec.ts
Example: Track Multiple Metrics at Runtime
A single test can report multiple metrics. Push each one after you capture the value:tests/checkout.spec.ts
Common Metric Examples
These show the annotation format for different categories. Replace thevalue with your actual measurement.
- Performance
- Quality
- Resources
How Metrics Display in TestDino
Metric values appear on the test case detail page in two places:- Annotations panel on the test case overview. Each metric shows its name and a
value unit / thresholdbadge, for examplepage-load-timewith1234 ms / 2000. Athresholdof0(or omitted) shows the value alone. - Custom Runtime Metrics chart in the Specs Explorer. TestDino plots a time-series chart for each metric name, with the X-axis showing test run timestamps and the Y-axis showing the metric value. Filter by metric name to focus on a specific measurement, and the chart updates as new test runs report values for that metric.
View Annotations in TestDino
Once your tests run, annotations appear in two places in TestDino.Test Case Detail
Open any test case from a test run. Below the KPI tiles, the Annotations panel lists every annotation on that test: priority, feature, link, owner, Slack targets, context, and flaky reason. Metric values also appear with their name, value, and unit.Detailed Analysis Table
In the Test Runs > Summary > Detailed Analysis table, each test row has an Annotations badge. Click it to expand and see annotation chips (priority, feature, owner, Slack targets) inline with the test result. This makes it easy to scan annotations across all tests in a run without opening each one.Annotation-Based Slack Notifications
When a test with atestdino:notify-slack annotation fails, TestDino sends a Slack alert to the mapped channel or user. This works independently from test run alerts, which notify on every run completion regardless of annotations.
The notification flow:
- Your test has
testdino:notify-slackset to@ashishor#e2e-alerts. - The test fails during a run.
- TestDino looks up the Annotation-Slack mapping in your Slack App configuration.
- If there is a mapping for that target, the alert goes to the configured Slack destination.
Configure Annotation-Slack Mapping
The mapping connects thetestdino:notify-slack values you write in your test code to actual Slack channels and users in your workspace.
1
Connect the Slack App
Go to Project Settings > Integrations > Communication > Slack App and connect your Slack workspace. See Slack App setup if you have not connected yet.
2
Open Annotation Alerts tab
In the Slack Notification Configuration dialog, switch to the Annotation Alerts tab. This is where you define which annotation targets map to which Slack destinations.
3
Add your mappings
For each annotation target in your test code, add a row and pick the Slack channel or user it should notify:
Type in the search box and select from the dropdown. The dropdown lists all channels and users from your connected Slack workspace.
4
Save the configuration
Click Save. From now on, when a test with a matching
testdino:notify-slack annotation fails, the alert is sent to the mapped Slack destination.Things to Know
- Mapping is stored at the integration level, not at the project level.
- Disconnecting Slack removes all mappings. If you disconnect the Slack App, all Annotation-Slack mappings are deleted. You need to set them up again after reconnecting.
- One test can notify multiple targets. Add separate
testdino:notify-slackentries for each channel or user you want to alert.
Example: Full Annotation Setup
This test uses all supported annotation types, including a runtime metric:tests/order.spec.ts
- TestDino shows all annotations in the test case Annotations panel.
- The
order-flow-timemetric appears on the test detail page and is plotted on a trend chart across runs. - If the test fails, Slack alerts go to
#ch-td-extraand@ashish(if mapped in the Slack App configuration). - The Detailed Analysis table shows annotation chips for quick scanning across all tests in the run.
Related
Slack App
Connect Slack and configure notification channels
Test Cases
View test case details and annotations
Test Runs Summary
Detailed analysis with annotation chips
Node.js CLI
Reporter configuration and CLI options