@m00nsolutions/playwright-reporter 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -116
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @m00nsolutions/playwright-reporter
|
|
2
2
|
|
|
3
|
-
Official Playwright test reporter for [M00n Report](https://
|
|
3
|
+
Official Playwright test reporter for [M00n Report](https://app.m00n.report) - a real-time test reporting dashboard.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -8,7 +8,6 @@ Official Playwright test reporter for [M00n Report](https://m00nreport.com) - a
|
|
|
8
8
|
- 📎 **Attachment support** - Screenshots, videos, traces, and custom files
|
|
9
9
|
- 🔄 **Retry tracking** - Automatic tracking of test retries with attempt history
|
|
10
10
|
- 🏷️ **Tags & attributes** - Organize runs with custom metadata
|
|
11
|
-
- 📊 **Performance metrics** - Detailed timing and bottleneck analysis
|
|
12
11
|
- 🔒 **Secure** - API key authentication per project
|
|
13
12
|
|
|
14
13
|
## Installation
|
|
@@ -25,7 +24,7 @@ pnpm add @m00nsolutions/playwright-reporter --save-dev
|
|
|
25
24
|
|
|
26
25
|
### 1. Get your API key
|
|
27
26
|
|
|
28
|
-
1. Log in to [
|
|
27
|
+
1. Log in to [app.m00n.report](https://app.m00n.report)
|
|
29
28
|
2. Navigate to your project settings
|
|
30
29
|
3. Generate or copy your project API key
|
|
31
30
|
|
|
@@ -40,7 +39,7 @@ export default defineConfig({
|
|
|
40
39
|
reporter: [
|
|
41
40
|
['list'], // Keep default console output
|
|
42
41
|
['@m00nsolutions/playwright-reporter', {
|
|
43
|
-
serverUrl: 'https://
|
|
42
|
+
serverUrl: 'https://app.m00n.report', // Or your self-hosted URL
|
|
44
43
|
apiKey: process.env.M00N_API_KEY, // Your project API key
|
|
45
44
|
launch: 'Regression Suite', // Optional: run title
|
|
46
45
|
tags: ['smoke', 'regression'], // Optional: tags
|
|
@@ -70,18 +69,13 @@ That's it! Your test results will appear in the M00n Report dashboard in real-ti
|
|
|
70
69
|
| `launch` | `string` | `'Run {date}'` | Title for this test run |
|
|
71
70
|
| `tags` | `string[]` | `[]` | Tags to categorize the run |
|
|
72
71
|
| `attributes` | `object` | `{}` | Custom key-value metadata |
|
|
73
|
-
| `realtime` | `boolean` | `true` | Enable real-time step streaming |
|
|
74
|
-
| `binaryAttachments` | `boolean` | `true` | Use efficient binary uploads |
|
|
75
|
-
| `debug` | `boolean` | `false` | Enable debug logging |
|
|
76
|
-
| `verbose` | `boolean` | `false` | Enable performance timing logs |
|
|
77
|
-
| `logFile` | `string` | `null` | Path to save performance metrics |
|
|
78
72
|
|
|
79
73
|
## Environment Variables
|
|
80
74
|
|
|
81
75
|
You can also configure the reporter via environment variables:
|
|
82
76
|
|
|
83
77
|
```bash
|
|
84
|
-
M00N_SERVER_URL=https://
|
|
78
|
+
M00N_SERVER_URL=https://app.m00n.report
|
|
85
79
|
M00N_API_KEY=m00n_xxxxxxxxxxxxx
|
|
86
80
|
M00N_LAUNCH="Nightly Build"
|
|
87
81
|
M00N_TAGS=smoke,regression
|
|
@@ -94,58 +88,12 @@ M00N_TAGS=smoke,regression
|
|
|
94
88
|
```typescript
|
|
95
89
|
reporter: [
|
|
96
90
|
['@m00nsolutions/playwright-reporter', {
|
|
97
|
-
serverUrl: 'https://
|
|
91
|
+
serverUrl: 'https://app.m00n.report',
|
|
98
92
|
apiKey: process.env.M00N_API_KEY,
|
|
99
93
|
}],
|
|
100
94
|
],
|
|
101
95
|
```
|
|
102
96
|
|
|
103
|
-
### CI/CD Configuration
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
reporter: [
|
|
107
|
-
['@m00nsolutions/playwright-reporter', {
|
|
108
|
-
serverUrl: 'https://ingest.m00nreport.com',
|
|
109
|
-
apiKey: process.env.M00N_API_KEY,
|
|
110
|
-
launch: `Build #${process.env.BUILD_NUMBER}`,
|
|
111
|
-
tags: [process.env.CI_ENVIRONMENT, 'automated'],
|
|
112
|
-
attributes: {
|
|
113
|
-
ciJobUrl: process.env.CI_JOB_URL,
|
|
114
|
-
gitBranch: process.env.GIT_BRANCH,
|
|
115
|
-
gitCommit: process.env.GIT_COMMIT,
|
|
116
|
-
triggeredBy: process.env.GITLAB_USER_LOGIN,
|
|
117
|
-
},
|
|
118
|
-
}],
|
|
119
|
-
],
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### Link Test Cases
|
|
123
|
-
|
|
124
|
-
Use annotations to link tests to test case IDs in your test management system:
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
import { test } from '@playwright/test';
|
|
128
|
-
|
|
129
|
-
test('user can login @caseId=TC-123', async ({ page }) => {
|
|
130
|
-
// Your test code
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
// Or use the annotation API
|
|
134
|
-
test('user can logout', async ({ page }) => {
|
|
135
|
-
test.info().annotations.push({ type: 'caseId', description: 'TC-456' });
|
|
136
|
-
// Your test code
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Custom Tags per Test
|
|
141
|
-
|
|
142
|
-
```typescript
|
|
143
|
-
test('critical checkout flow', async ({ page }) => {
|
|
144
|
-
test.info().annotations.push({ type: 'tags', description: ['critical', 'checkout'] });
|
|
145
|
-
// Your test code
|
|
146
|
-
});
|
|
147
|
-
```
|
|
148
|
-
|
|
149
97
|
## Real-time Step Streaming
|
|
150
98
|
|
|
151
99
|
When `realtime: true` (default), the reporter streams test steps to the dashboard as they execute. This allows you to:
|
|
@@ -178,65 +126,6 @@ test('with attachments', async ({ page }) => {
|
|
|
178
126
|
});
|
|
179
127
|
```
|
|
180
128
|
|
|
181
|
-
## Performance Optimization
|
|
182
|
-
|
|
183
|
-
For high-parallelism runs (30+ workers), the reporter includes:
|
|
184
|
-
|
|
185
|
-
- **Upload concurrency limiting** - Prevents server overload
|
|
186
|
-
- **Request batching** - Reduces HTTP overhead
|
|
187
|
-
- **Large file streaming** - Efficient handling of big traces
|
|
188
|
-
- **Backpressure control** - Graceful degradation under load
|
|
189
|
-
|
|
190
|
-
Enable verbose logging to analyze performance:
|
|
191
|
-
|
|
192
|
-
```typescript
|
|
193
|
-
reporter: [
|
|
194
|
-
['@m00nsolutions/playwright-reporter', {
|
|
195
|
-
serverUrl: 'https://ingest.m00nreport.com',
|
|
196
|
-
apiKey: process.env.M00N_API_KEY,
|
|
197
|
-
verbose: true,
|
|
198
|
-
logFile: './m00n-performance.log',
|
|
199
|
-
}],
|
|
200
|
-
],
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
## Self-Hosted
|
|
204
|
-
|
|
205
|
-
For self-hosted M00n Report installations, point to your ingest service:
|
|
206
|
-
|
|
207
|
-
```typescript
|
|
208
|
-
reporter: [
|
|
209
|
-
['@m00nsolutions/playwright-reporter', {
|
|
210
|
-
serverUrl: 'https://your-domain.com:4001', // Your ingest service
|
|
211
|
-
apiKey: process.env.M00N_API_KEY,
|
|
212
|
-
}],
|
|
213
|
-
],
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Troubleshooting
|
|
217
|
-
|
|
218
|
-
### Reporter is disabled
|
|
219
|
-
|
|
220
|
-
Check the console output for messages like:
|
|
221
|
-
- `"serverUrl" is required` - Ensure serverUrl is configured
|
|
222
|
-
- `"apiKey" is required` - Ensure apiKey is configured
|
|
223
|
-
- `Server unavailable` - Check network connectivity to the server
|
|
224
|
-
|
|
225
|
-
### Missing test results
|
|
226
|
-
|
|
227
|
-
1. Ensure the ingest service is running and accessible
|
|
228
|
-
2. Check your API key is valid for the project
|
|
229
|
-
3. Enable debug mode to see detailed logging:
|
|
230
|
-
```typescript
|
|
231
|
-
debug: true
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### Large trace files
|
|
235
|
-
|
|
236
|
-
For very large trace files (>100MB), increase timeouts or consider:
|
|
237
|
-
- Using `retain-on-failure` instead of `on` for traces
|
|
238
|
-
- Reducing trace content with `screenshots: 'off'`
|
|
239
|
-
|
|
240
129
|
## License
|
|
241
130
|
|
|
242
131
|
MIT License - see [LICENSE](LICENSE) for details.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m00nsolutions/playwright-reporter",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Playwright test reporter for M00n Report dashboard - real-time test result streaming with step tracking, attachments, and retry support",
|
|
5
5
|
"main": "index.mjs",
|
|
6
6
|
"type": "module",
|