icon | description |
---|---|
note-sticky |
Using Playwright Annotations to enhance reporting to Currents dashboard |
{% hint style="info" %}
Requires @currents/playwright
1.5.0+
{% endhint %}
Playwright Annotations is a flexible way to add additional information about tests, like:
- ownership information
- metadata
- links to external resources (Jira ticket, GitHub issue)
- notes
Together with playwright-tags.md it allows augmenting your testing suite with metadata for easier managing, better reporting and improved integrations.
You can add an annotation to a test by adding annotations
object to test
definition or invoking testInfo.annotations.push
, for example
test("annotated test", {
annotation: {
type: "issue",
description: "https://github.com/microsoft/playwright/issues/23180",
},
}, async ({ page }, testInfo) => {
testInfo.annotations.push({
type: "note",
description: "This is a note",
});
testInfo.annotations.push({
type: "jira",
description: "https://jira.company.io/ticket/JIRA-123",
});
testInfo.annotations.push({
type: "owner",
description: "johnsmith",
});
});
Currents displays the annotations for recorded tests:
Playwright annotations in Currents
Currents will apply the following rules when parsing annotations:
- types:
skip, fixme, fail, slow
are reserved by Playwright 32
max distinct annotations per test, extra annotations will be removed (sorted by the order of appearance)type
field is limited to256
characters, the values will be trimmed and truncated to the max lengthdescription
field is limited to2048
characters, the values will be trimmed and truncated to the max length- If
type
is empty after trimming, the annotation will be ignored
While Currents displays all the annotations related to a test, some annotation have a special meaning, for example - test owner.
To designate an owner of a test, add annotation with type: owner
, for example:
testInfo.annotations.push({
type: "owner",
description: "johnsmith",
});
The value will appear in various areas of the dashboard so that your team can quickly identify the who owns the test.
Showing test owner using annotations in Currents
Annotation of type notify:slack
activates Slack mentions for failed tests - when Currents detects a failed test with notify:slack
annotation, it will trigger Slack notification according to the following convention:
type: "notify:slack", description: "user:userId"
- will notify user with the correspondinguserId, userId
can be either a Slack UserId or Slack Usernametype: "notify:slack", description: "team:teamId"
- will notify team with the correspondingteamId
, (see how to retrieve Slack Team id)
You can combine the values to activate multiple notifications, for example:
{
"type": "notify:slack",
"description": "user:U01RWNBFGER, team:S07JCUP81EG"
}
For example, the following annotations will define test owner and activate slack notifications:
test(
"my failed test",
{
annotation: [
{
type: "owner", // This shows the user in the dashboard
description: "Miguel Langarano",
},
{
type: "notify:slack", // This notifies the user in Slack
description: "user:U01RWNBFGER",
},
{
type: "notify:slack", // This notifies a group in Slack
description: "team:T01S60385HA",
},
],
},
async ({ page }) => {
expect(true).toBe(false);
}
);
Test owner shown in Currents dashboard
Slack notification to specific user and group in Slack