testdriverai 7.2.9 → 7.2.10

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.
Files changed (124) hide show
  1. package/.github/workflows/testdriver.yml +127 -0
  2. package/.testdriver/last-sandbox +7 -0
  3. package/agent/events.js +1 -0
  4. package/agent/index.js +71 -54
  5. package/agent/lib/sandbox.js +11 -1
  6. package/agents.md +393 -0
  7. package/debug/01-table-initial.png +0 -0
  8. package/debug/02-after-ai-explore.png +0 -0
  9. package/debug/02-after-scroll.png +0 -0
  10. package/docs/docs.json +93 -125
  11. package/docs/v7/_drafts/caching.mdx +2 -2
  12. package/docs/v7/{getting-started → _drafts}/installation.mdx +0 -66
  13. package/docs/v7/{features/coverage.mdx → _drafts/powerful.mdx} +1 -90
  14. package/docs/v7/{features → _drafts}/scalable.mdx +126 -4
  15. package/docs/v7/_drafts/screenshot.mdx +155 -0
  16. package/docs/v7/_drafts/writing-tests.mdx +25 -0
  17. package/docs/v7/{api/act.mdx → ai.mdx} +27 -27
  18. package/docs/v7/{api/assert.mdx → assert.mdx} +3 -3
  19. package/docs/v7/aws-setup.mdx +338 -0
  20. package/docs/v7/caching.mdx +128 -0
  21. package/docs/v7/ci-cd.mdx +605 -0
  22. package/docs/v7/{api/click.mdx → click.mdx} +4 -4
  23. package/docs/v7/cloud.mdx +120 -0
  24. package/docs/v7/customizing-devices.mdx +129 -0
  25. package/docs/v7/{api/doubleClick.mdx → double-click.mdx} +5 -5
  26. package/docs/v7/enterprise.mdx +135 -0
  27. package/docs/v7/examples.mdx +5 -0
  28. package/docs/v7/{api/exec.mdx → exec.mdx} +3 -3
  29. package/docs/v7/{api/find.mdx → find.mdx} +17 -21
  30. package/docs/v7/{api/focusApplication.mdx → focus-application.mdx} +3 -3
  31. package/docs/v7/generating-tests.mdx +32 -0
  32. package/docs/v7/{api/hover.mdx → hover.mdx} +3 -3
  33. package/docs/v7/locating-elements.mdx +71 -0
  34. package/docs/v7/making-assertions.mdx +32 -0
  35. package/docs/v7/{api/mouseDown.mdx → mouse-down.mdx} +7 -7
  36. package/docs/v7/{api/mouseUp.mdx → mouse-up.mdx} +8 -8
  37. package/docs/v7/performing-actions.mdx +51 -0
  38. package/docs/v7/{api/pressKeys.mdx → press-keys.mdx} +3 -3
  39. package/docs/v7/quickstart.mdx +162 -0
  40. package/docs/v7/reusable-code.mdx +240 -0
  41. package/docs/v7/{api/rightClick.mdx → right-click.mdx} +5 -5
  42. package/docs/v7/running-tests.mdx +181 -0
  43. package/docs/v7/{api/scroll.mdx → scroll.mdx} +3 -3
  44. package/docs/v7/secrets.mdx +115 -0
  45. package/docs/v7/self-hosted.mdx +66 -0
  46. package/docs/v7/{api/type.mdx → type.mdx} +3 -3
  47. package/docs/v7/variables.mdx +111 -0
  48. package/docs/v7/waiting-for-elements.mdx +66 -0
  49. package/docs/v7/what-is-testdriver.mdx +54 -0
  50. package/lib/vitest/hooks.mjs +80 -68
  51. package/package.json +1 -1
  52. package/sdk.d.ts +22 -9
  53. package/sdk.js +177 -44
  54. package/test/manual/reconnect-provision.test.mjs +49 -0
  55. package/test/manual/reconnect-signin.test.mjs +41 -0
  56. package/test/testdriver/ai.test.mjs +30 -0
  57. package/test/testdriver/setup/testHelpers.mjs +0 -1
  58. package/test/testdriver/windows-installer.test.mjs +61 -0
  59. package/tests/table-sort-enrollments.test.mjs +72 -0
  60. package/tests/table-sort-experiment.test.mjs +42 -0
  61. package/tests/table-sort-setup.test.mjs +59 -0
  62. package/vitest.config.mjs +1 -0
  63. package/docs/v7/api/assertions.mdx +0 -403
  64. package/docs/v7/features/ai-native.mdx +0 -413
  65. package/docs/v7/features/application-logs.mdx +0 -353
  66. package/docs/v7/features/browser-logs.mdx +0 -414
  67. package/docs/v7/features/cache-management.mdx +0 -402
  68. package/docs/v7/features/continuous-testing.mdx +0 -346
  69. package/docs/v7/features/data-driven-testing.mdx +0 -441
  70. package/docs/v7/features/easy-to-write.mdx +0 -280
  71. package/docs/v7/features/enterprise.mdx +0 -656
  72. package/docs/v7/features/fast.mdx +0 -406
  73. package/docs/v7/features/managed-sandboxes.mdx +0 -384
  74. package/docs/v7/features/network-monitoring.mdx +0 -568
  75. package/docs/v7/features/parallel-execution.mdx +0 -381
  76. package/docs/v7/features/powerful.mdx +0 -531
  77. package/docs/v7/features/sandbox-customization.mdx +0 -229
  78. package/docs/v7/features/stable.mdx +0 -473
  79. package/docs/v7/features/system-performance.mdx +0 -616
  80. package/docs/v7/features/test-analytics.mdx +0 -373
  81. package/docs/v7/features/test-cases.mdx +0 -393
  82. package/docs/v7/features/test-replays.mdx +0 -408
  83. package/docs/v7/features/test-reports.mdx +0 -308
  84. package/docs/v7/getting-started/debugging-tests.mdx +0 -382
  85. package/docs/v7/getting-started/quickstart.mdx +0 -90
  86. package/docs/v7/getting-started/running-tests.mdx +0 -173
  87. package/docs/v7/getting-started/setting-up-in-ci.mdx +0 -612
  88. package/docs/v7/getting-started/writing-tests.mdx +0 -534
  89. package/docs/v7/overview/what-is-testdriver.mdx +0 -386
  90. package/docs/v7/presets/chrome-extension.mdx +0 -248
  91. package/docs/v7/presets/chrome.mdx +0 -300
  92. package/docs/v7/presets/electron.mdx +0 -460
  93. package/docs/v7/presets/vscode.mdx +0 -417
  94. package/docs/v7/presets/webapp.mdx +0 -393
  95. package/vitest.config.js +0 -18
  96. /package/docs/v7/{commands → _drafts/commands}/assert.mdx +0 -0
  97. /package/docs/v7/{commands → _drafts/commands}/exec.mdx +0 -0
  98. /package/docs/v7/{commands → _drafts/commands}/focus-application.mdx +0 -0
  99. /package/docs/v7/{commands → _drafts/commands}/hover-image.mdx +0 -0
  100. /package/docs/v7/{commands → _drafts/commands}/hover-text.mdx +0 -0
  101. /package/docs/v7/{commands → _drafts/commands}/if.mdx +0 -0
  102. /package/docs/v7/{commands → _drafts/commands}/match-image.mdx +0 -0
  103. /package/docs/v7/{commands → _drafts/commands}/press-keys.mdx +0 -0
  104. /package/docs/v7/{commands → _drafts/commands}/remember.mdx +0 -0
  105. /package/docs/v7/{commands → _drafts/commands}/run.mdx +0 -0
  106. /package/docs/v7/{commands → _drafts/commands}/scroll-until-image.mdx +0 -0
  107. /package/docs/v7/{commands → _drafts/commands}/scroll-until-text.mdx +0 -0
  108. /package/docs/v7/{commands → _drafts/commands}/scroll.mdx +0 -0
  109. /package/docs/v7/{commands → _drafts/commands}/type.mdx +0 -0
  110. /package/docs/v7/{commands → _drafts/commands}/wait-for-image.mdx +0 -0
  111. /package/docs/v7/{commands → _drafts/commands}/wait-for-text.mdx +0 -0
  112. /package/docs/v7/{commands → _drafts/commands}/wait.mdx +0 -0
  113. /package/docs/v7/{getting-started → _drafts}/configuration.mdx +0 -0
  114. /package/docs/v7/{features → _drafts}/observable.mdx +0 -0
  115. /package/docs/v7/{platforms → _drafts/platforms}/linux.mdx +0 -0
  116. /package/docs/v7/{platforms → _drafts/platforms}/macos.mdx +0 -0
  117. /package/docs/v7/{platforms → _drafts/platforms}/windows.mdx +0 -0
  118. /package/docs/v7/{playwright.mdx → _drafts/playwright.mdx} +0 -0
  119. /package/docs/v7/{overview → _drafts}/readme.mdx +0 -0
  120. /package/docs/v7/{features → _drafts}/reports.mdx +0 -0
  121. /package/docs/v7/{api/client.mdx → client.mdx} +0 -0
  122. /package/docs/v7/{api/dashcam.mdx → dashcam.mdx} +0 -0
  123. /package/docs/v7/{api/elements.mdx → elements.mdx} +0 -0
  124. /package/docs/v7/{api/sandbox.mdx → sandbox.mdx} +0 -0
@@ -1,408 +0,0 @@
1
- ---
2
- title: "Test Replays"
3
- description: "Video replays with logs, network data, and performance metrics for debugging"
4
- icon: "video"
5
- ---
6
-
7
- Every test automatically records a complete replay with video, step-by-step logs, browser console output, network requests, and performance metrics. Perfect for debugging failures and sharing with your team.
8
-
9
- ## Dashcam Replays
10
-
11
- Access test replays at [app.testdriver.ai/replays](https://app.testdriver.ai/replays):
12
-
13
- <Card title="Test Replays" icon="video" href="https://app.testdriver.ai/replays">
14
- View all test replays with video and debugging information
15
- </Card>
16
-
17
- ### What's Included
18
-
19
- Every replay captures:
20
-
21
- <CardGroup cols={2}>
22
- <Card title="Video Recording" icon="video">
23
- - Full screen recording
24
- - Playback controls (play, pause, skip)
25
- - Adjustable speed (0.5x to 3x)
26
- - Frame-by-frame navigation
27
- </Card>
28
-
29
- <Card title="Action Steps" icon="list">
30
- - Every TestDriver command
31
- - Timestamps for each action
32
- - Element coordinates found
33
- - AI vision analysis results
34
- </Card>
35
-
36
- <Card title="Console Logs" icon="terminal">
37
- - Browser console output
38
- - JavaScript errors
39
- - Warnings and info logs
40
- - Custom console.log() statements
41
- </Card>
42
-
43
- <Card title="Network Activity" icon="network-wired">
44
- - All HTTP requests
45
- - Response status codes
46
- - Request/response timing
47
- - Downloaded/uploaded data
48
- </Card>
49
-
50
- <Card title="Performance Charts" icon="chart-line">
51
- - CPU usage over time
52
- - Memory usage trends
53
- - Top 10 processes
54
- - Resource utilization
55
- </Card>
56
-
57
- <Card title="Environment Info" icon="server">
58
- - Operating system
59
- - Browser version
60
- - Screen resolution
61
- - Sandbox details
62
- </Card>
63
- </CardGroup>
64
-
65
- ## Video Player
66
-
67
- Interactive video playback with timeline:
68
-
69
- ```
70
- Replay Interface:
71
- ┌─────────────────────────────────────────────────────┐
72
- │ │
73
- │ [Video of test execution] │
74
- │ │
75
- └─────────────────────────────────────────────────────┘
76
-
77
- [◀◀] [▶/⏸] [▶▶] 0:45 / 2:30 [0.5x][1x][2x][3x]
78
-
79
- Timeline:
80
- |─────────○────────────────────────|
81
- Current position
82
-
83
- Speed Controls:
84
- - Skip downtime: ON [toggle]
85
- - Playback speed: 1x
86
- ```
87
-
88
- ### Timeline Features
89
-
90
- Navigate test execution:
91
-
92
- - **Action Markers** - Click to jump to specific TestDriver commands
93
- - **Error Markers** - Red indicators show where failures occurred
94
- - **Screenshot Points** - View captured screenshots at each step
95
- - **Skip Downtime** - Automatically fast-forward through idle periods
96
-
97
- ## Action Log Panel
98
-
99
- Step-by-step test execution details:
100
-
101
- ```
102
- Steps:
103
- ┌────────────────────────────────────────────────────┐
104
- │ [0:00] 🟢 Find │
105
- │ "testdriver-sandbox.vercel.app" not found │
106
- │ Text: Element not found │
107
- │ [Screenshot] │
108
- ├────────────────────────────────────────────────────┤
109
- │ [0:15] 🟢 Find │
110
- │ "testdriver-sandbox.vercel.app" │
111
- │ Text: [Passed] │
112
- │ [Screenshot] │
113
- ├────────────────────────────────────────────────────┤
114
- │ [0:32] 🟢 Find │
115
- │ "Sign in, black button below the password fld" │
116
- │ Text: [Passed] │
117
- │ Coordinates: (512, 387) │
118
- │ [Screenshot] │
119
- └────────────────────────────────────────────────────┘
120
- ```
121
-
122
- Each step shows:
123
- - **Timestamp** - When action occurred
124
- - **Status** - Pass/fail indicator
125
- - **Command** - TestDriver action
126
- - **Description** - Natural language selector
127
- - **Result** - Element found or error message
128
- - **Screenshot** - Visual confirmation
129
-
130
- ## Console Logs Tab
131
-
132
- View browser console output:
133
-
134
- ```
135
- Console Output:
136
- ┌────────────────────────────────────────────────────┐
137
- │ [0:05] ℹ️ System info configured │
138
- │ [0:08] ℹ️ Response cache: /Users/...cache.json │
139
- │ [0:12] ✓ Response was successful! │
140
- │ [0:18] ⚠️ Warning: Deprecated API usage │
141
- │ [0:25] ❌ TypeError: Cannot read property 'id' │
142
- │ at checkout.js:42:15 │
143
- └────────────────────────────────────────────────────┘
144
-
145
- Filters:
146
- □ Errors □ Warnings ☑ Info □ Debug
147
- ```
148
-
149
- **Debugging Value:**
150
- - Catch JavaScript errors
151
- - Monitor application state
152
- - Track API responses
153
- - Debug timing issues
154
-
155
- ## Browser Tab
156
-
157
- Access browser-specific debugging:
158
-
159
- ```
160
- Browser Information:
161
- ┌────────────────────────────────────────────────────┐
162
- │ User Agent: │
163
- │ Mozilla/5.0 (X11; Linux x86_64) Chrome/120.0 │
164
- │ │
165
- │ Viewport: 1280 x 720 │
166
- │ Device Scale: 1.0 │
167
- │ Color Depth: 24-bit │
168
- │ │
169
- │ Cookies: 12 stored │
170
- │ Local Storage: 3 items │
171
- │ Session Storage: 1 item │
172
- └────────────────────────────────────────────────────┘
173
- ```
174
-
175
- ## Performance Charts Tab
176
-
177
- Monitor system resource usage:
178
-
179
- ### CPU Usage
180
-
181
- ```
182
- CPU Usage Over Time:
183
- ┌────────────────────────────────────────────────────┐
184
- │ 60% │ ╱╲ │
185
- │ │ ╱ ╲ │
186
- │ 40% │ ╱╲╱ ╲ │
187
- │ │ ╱╲╱ ╲╱╲ │
188
- │ 20% │ ╱╲╱ ╲ │
189
- │ │ ╱╱ ╲╱╲ │
190
- │ 0% └──────────────────────────────────────────── │
191
- │ 0s 10s 20s 30s 40s 50s 60s │
192
- └────────────────────────────────────────────────────┘
193
-
194
- System CPU Usage (%)
195
- Peak: 58.5% at 35s
196
- ```
197
-
198
- ### Memory Usage
199
-
200
- ```
201
- Memory Usage Over Time:
202
- ┌────────────────────────────────────────────────────┐
203
- │ 72 │ │
204
- │ GB │ ╱───── │
205
- │ 68 │ ╱────╱ │
206
- │ │ ╱────╱ │
207
- │ 64 │ ╱────╱ │
208
- │ │ ╱────╱ │
209
- │ 60 │─────╱ │
210
- │ └──────────────────────────────────────────── │
211
- │ 0s 10s 20s 30s 40s 50s 60s │
212
- └────────────────────────────────────────────────────┘
213
-
214
- System Memory Usage (%)
215
- Peak: 71.2% (68.8 GB used)
216
- ```
217
-
218
- ### Network Traffic
219
-
220
- ```
221
- Network Traffic:
222
- ┌────────────────────────────────────────────────────┐
223
- │ Download (MB/s): ▂▃▅▇▇▃▂▁ │
224
- │ Upload (MB/s): ▁▁▂▂▁▁▁▁ │
225
- │ │
226
- │ Total Downloaded: 2.8 MB │
227
- │ Total Uploaded: 0.4 MB │
228
- └────────────────────────────────────────────────────┘
229
- ```
230
-
231
- ### Top Processes by CPU
232
-
233
- ```
234
- Top 10 CPU-Intensive Processes:
235
- ┌────────────────────────────────────────────────────┐
236
- │ chromium (PID 2766) ████████████ 45% │
237
- │ python (PID 2845) ██████ 22% │
238
- │ Xvfb (PID 2634) ████ 15% │
239
- │ testdriver (PID 3012) ███ 10% │
240
- │ node (PID 2890) ██ 5% │
241
- │ bash (PID 2521) ▌ 1.5% │
242
- │ systemd (PID 1) ▌ 0.8% │
243
- │ sshd (PID 1234) ▌ 0.5% │
244
- └────────────────────────────────────────────────────┘
245
- ```
246
-
247
- **Performance Insights:**
248
- - Identify resource bottlenecks
249
- - Monitor browser performance
250
- - Track memory leaks
251
- - Optimize heavy operations
252
-
253
- ## Environment Tab
254
-
255
- Complete test environment details:
256
-
257
- ```
258
- Environment Information:
259
- ┌────────────────────────────────────────────────────┐
260
- │ Operating System: Ubuntu 22.04 LTS │
261
- │ Kernel: 5.15.0-91-generic │
262
- │ │
263
- │ Browser: Google Chrome 120.0.6099.109 │
264
- │ WebDriver: ChromeDriver 120.0.6099.71 │
265
- │ │
266
- │ TestDriver SDK: v7.2.1 │
267
- │ Node.js: v20.10.0 │
268
- │ Python: 3.11.6 │
269
- │ │
270
- │ Sandbox ID: i-0abc123def456789 │
271
- │ Instance Type: t3.medium │
272
- │ Region: us-east-1 │
273
- │ │
274
- │ Screen Resolution: 1280x720 │
275
- │ Color Depth: 24-bit │
276
- │ Timezone: UTC │
277
- └────────────────────────────────────────────────────┘
278
- ```
279
-
280
- ## Sharing Replays
281
-
282
- Share debugging information with your team:
283
-
284
- <Tabs>
285
- <Tab title="Public Link">
286
- ```javascript
287
- const { dashcam } = await chrome(context, { url });
288
-
289
- console.log('Public replay:', dashcam.url);
290
- // https://app.testdriver.ai/replay/abc123
291
-
292
- // Anyone with link can view
293
- ```
294
- </Tab>
295
-
296
- <Tab title="Team Link">
297
- ```javascript
298
- const { dashcam } = await chrome(context, { url });
299
-
300
- console.log('Team only:', dashcam.privateUrl);
301
- // https://app.testdriver.ai/replay/abc123?access=team
302
-
303
- // Requires team authentication
304
- ```
305
- </Tab>
306
-
307
- <Tab title="Embed Link">
308
- ```javascript
309
- const { dashcam } = await chrome(context, { url });
310
-
311
- console.log('Embed URL:', dashcam.embedUrl);
312
- // https://app.testdriver.ai/embed/abc123
313
-
314
- // Use in iframe for documentation
315
- ```
316
- </Tab>
317
- </Tabs>
318
-
319
- ## Download Replay
320
-
321
- Export replay data:
322
-
323
- <CardGroup cols={2}>
324
- <Card title="Video File" icon="file-video">
325
- Download MP4 video file
326
- - Full test execution
327
- - Shareable format
328
- - Offline viewing
329
- </Card>
330
-
331
- <Card title="HAR File" icon="file-code">
332
- HTTP Archive format
333
- - All network requests
334
- - Chrome DevTools compatible
335
- - Performance analysis
336
- </Card>
337
-
338
- <Card title="Screenshots" icon="images">
339
- ZIP file of all screenshots
340
- - PNG format
341
- - Timestamped filenames
342
- - Step-by-step visuals
343
- </Card>
344
-
345
- <Card title="JSON Data" icon="file-lines">
346
- Complete replay data
347
- - Action log
348
- - Console logs
349
- - Metrics and timing
350
- </Card>
351
- </CardGroup>
352
-
353
- ## Replay API Access
354
-
355
- Programmatic access to replays:
356
-
357
- ```javascript
358
- // Fetch replay data
359
- const response = await fetch(
360
- 'https://api.testdriver.ai/v1/replays/abc123',
361
- {
362
- headers: {
363
- 'Authorization': `Bearer ${TD_API_KEY}`
364
- }
365
- }
366
- );
367
-
368
- const replay = await response.json();
369
- console.log(replay.actions); // Step-by-step log
370
- console.log(replay.videoUrl); // MP4 download URL
371
- console.log(replay.performance); // Metrics data
372
- ```
373
-
374
- ## Learn More
375
-
376
- <CardGroup cols={2}>
377
- <Card
378
- title="Observability & Debugging"
379
- icon="microscope"
380
- href="/v7/features/observable"
381
- >
382
- Complete debugging guide
383
- </Card>
384
-
385
- <Card
386
- title="Test Reports"
387
- icon="list-check"
388
- href="/v7/features/test-reports"
389
- >
390
- View test run summaries
391
- </Card>
392
-
393
- <Card
394
- title="Test Cases"
395
- icon="file-lines"
396
- href="/v7/features/test-cases"
397
- >
398
- Individual test histories
399
- </Card>
400
-
401
- <Card
402
- title="Performance"
403
- icon="gauge-high"
404
- href="/v7/features/fast"
405
- >
406
- Optimize test speed
407
- </Card>
408
- </CardGroup>
@@ -1,308 +0,0 @@
1
- ---
2
- title: "Test Reports"
3
- description: "Comprehensive test run reports with pass/fail status and CI/CD integration"
4
- icon: "list-check"
5
- ---
6
-
7
- View all test runs, their status, and detailed execution information in the TestDriver dashboard. Track test results across branches, commits, and CI/CD pipelines.
8
-
9
- ## Test Runs Dashboard
10
-
11
- Access all test runs at [app.testdriver.ai/runs](https://app.testdriver.ai/runs):
12
-
13
- <Card title="Test Runs" icon="list" href="https://app.testdriver.ai/runs">
14
- View all test executions with filtering and search
15
- </Card>
16
-
17
- ### Available Information
18
-
19
- Each test run displays:
20
-
21
- - **Test Suite** - Which test file or suite ran
22
- - **Status** - PASSED, FAILED, RUNNING, or SKIPPED
23
- - **Platform** - OS and browser used (e.g., Linux + Chrome)
24
- - **Tests** - Number of test cases (e.g., 13 / 23)
25
- - **Pass Rate** - Success percentage (e.g., 55%)
26
- - **Duration** - Total execution time
27
- - **CI/CD** - Branch and commit information
28
- - **Timestamp** - When the test ran
29
-
30
- ### Test Run Statuses
31
-
32
- <CardGroup cols={2}>
33
- <Card title="PASSED" icon="check" color="green">
34
- All tests in the suite passed successfully
35
- </Card>
36
-
37
- <Card title="FAILED" icon="xmark" color="red">
38
- One or more tests failed
39
- </Card>
40
-
41
- <Card title="RUNNING" icon="spinner" color="yellow">
42
- Test suite is currently executing
43
- </Card>
44
-
45
- <Card title="SKIPPED" icon="forward" color="gray">
46
- Tests were skipped or not run
47
- </Card>
48
- </CardGroup>
49
-
50
- ## Filtering & Search
51
-
52
- Find specific test runs quickly:
53
-
54
- <Tabs>
55
- <Tab title="Time Period">
56
- ```
57
- Last 24 hours
58
- Last week
59
- Last month
60
- Custom date range
61
- ```
62
- </Tab>
63
-
64
- <Tab title="Branch">
65
- ```
66
- main
67
- develop
68
- feature/new-checkout
69
- Custom branch name
70
- ```
71
- </Tab>
72
-
73
- <Tab title="Repository">
74
- ```
75
- All repositories
76
- my-app
77
- frontend
78
- backend
79
- ```
80
- </Tab>
81
-
82
- <Tab title="Suite">
83
- ```
84
- All suites
85
- test/login.test.js
86
- test/checkout.test.js
87
- Custom test file
88
- ```
89
- </Tab>
90
-
91
- <Tab title="Status">
92
- ```
93
- All statuses
94
- PASSED only
95
- FAILED only
96
- RUNNING only
97
- ```
98
- </Tab>
99
- </Tabs>
100
-
101
- ## JUnit XML Integration
102
-
103
- Export test results in JUnit format for CI/CD platforms:
104
-
105
- ```bash
106
- # Generate JUnit report
107
- npx vitest run --reporter=junit --outputFile=test-results.xml
108
- ```
109
-
110
- ```xml test-results.xml
111
- <?xml version="1.0" encoding="UTF-8"?>
112
- <testsuites name="vitest tests" tests="23" failures="2" errors="0" time="125.3">
113
- <testsuite name="login.test.js" tests="5" failures="1" time="31.2">
114
- <testcase name="user can login" time="12.4" />
115
- <testcase name="invalid credentials show error" time="9.8">
116
- <failure message="AssertionError: Element not found">
117
- at TestDriver.find (sdk.js:234)
118
- at login.test.js:15
119
- </failure>
120
- </testcase>
121
- <testcase name="password reset works" time="9.0" />
122
- </testsuite>
123
- <testsuite name="checkout.test.js" tests="8" failures="0" time="45.6">
124
- <!-- More test cases -->
125
- </testsuite>
126
- </testsuites>
127
- ```
128
-
129
- <Check>
130
- JUnit reports integrate with Jenkins, GitHub Actions, GitLab CI, CircleCI, Azure DevOps, and TeamCity.
131
- </Check>
132
-
133
- ## CI/CD Integration
134
-
135
- TestDriver automatically captures CI/CD context:
136
-
137
- <Tabs>
138
- <Tab title="GitHub Actions">
139
- ```yaml .github/workflows/test.yml
140
- name: E2E Tests
141
-
142
- on: [push, pull_request]
143
-
144
- jobs:
145
- test:
146
- runs-on: ubuntu-latest
147
- steps:
148
- - uses: actions/checkout@v3
149
- - uses: actions/setup-node@v3
150
- - run: npm install
151
- - run: npx vitest run
152
- env:
153
- TD_API_KEY: ${{ secrets.TD_API_KEY }}
154
- GITHUB_SHA: ${{ github.sha }}
155
- GITHUB_REF: ${{ github.ref }}
156
- ```
157
-
158
- Test runs show:
159
- - Branch name
160
- - Commit SHA
161
- - Pull request number
162
- - Workflow run ID
163
- </Tab>
164
-
165
- <Tab title="GitLab CI">
166
- ```yaml .gitlab-ci.yml
167
- test:
168
- image: node:20
169
- script:
170
- - npm install
171
- - npx vitest run
172
- variables:
173
- TD_API_KEY: $TD_API_KEY
174
- artifacts:
175
- reports:
176
- junit: junit.xml
177
- ```
178
-
179
- Test runs show:
180
- - Branch/tag name
181
- - Commit SHA
182
- - Pipeline ID
183
- - Job ID
184
- </Tab>
185
-
186
- <Tab title="CircleCI">
187
- ```yaml .circleci/config.yml
188
- version: 2.1
189
- jobs:
190
- test:
191
- docker:
192
- - image: cimg/node:20.0
193
- steps:
194
- - checkout
195
- - run: npm install
196
- - run: npx vitest run
197
- environment:
198
- TD_API_KEY: ${TD_API_KEY}
199
- ```
200
-
201
- Test runs show:
202
- - Branch name
203
- - Build number
204
- - Workflow ID
205
- </Tab>
206
- </Tabs>
207
-
208
- ## Branch & Commit Tracking
209
-
210
- Track test results across your development workflow:
211
-
212
- ```javascript
213
- import { test } from 'vitest';
214
- import { chrome } from 'testdriverai/presets';
215
-
216
- test('tracked test run', async (context) => {
217
- const { testdriver } = await chrome(context, {
218
- url: 'https://example.com',
219
- // CI/CD info automatically captured from environment
220
- });
221
-
222
- await testdriver.find('button').click();
223
- });
224
- ```
225
-
226
- Dashboard displays:
227
- - **Branch:** `feature/new-checkout`
228
- - **Commit:** `a1b2c3d` (first 7 chars of SHA)
229
- - **Commit Message:** "Add new checkout flow"
230
- - **Author:** john@example.com
231
-
232
- ## Export Test Reports
233
-
234
- Download test results in multiple formats:
235
-
236
- <Tabs>
237
- <Tab title="CSV">
238
- ```csv
239
- Test Suite,Status,Platform,Tests,Pass Rate,Duration,Branch,Commit,Timestamp
240
- login.test.js,FAILED,Linux+Chrome,5,80%,31.2s,main,a1b2c3d,2024-12-09T10:30:00Z
241
- checkout.test.js,PASSED,Linux+Chrome,8,100%,45.6s,main,a1b2c3d,2024-12-09T10:31:00Z
242
- ```
243
- </Tab>
244
-
245
- <Tab title="JSON">
246
- ```json
247
- {
248
- "runs": [
249
- {
250
- "suite": "login.test.js",
251
- "status": "FAILED",
252
- "platform": "Linux+Chrome",
253
- "tests": { "total": 5, "passed": 4, "failed": 1 },
254
- "passRate": 0.80,
255
- "duration": 31.2,
256
- "branch": "main",
257
- "commit": "a1b2c3d",
258
- "timestamp": "2024-12-09T10:30:00Z"
259
- }
260
- ]
261
- }
262
- ```
263
- </Tab>
264
-
265
- <Tab title="PDF">
266
- Generate executive reports with:
267
- - Summary statistics
268
- - Test run table
269
- - Failure details
270
- - Trend charts
271
- </Tab>
272
- </Tabs>
273
-
274
- ## Learn More
275
-
276
- <CardGroup cols={2}>
277
- <Card
278
- title="Test Analytics"
279
- icon="chart-line"
280
- href="/v7/features/test-analytics"
281
- >
282
- View trends and performance metrics
283
- </Card>
284
-
285
- <Card
286
- title="Test Cases"
287
- icon="file-lines"
288
- href="/v7/features/test-cases"
289
- >
290
- Detailed test case reports
291
- </Card>
292
-
293
- <Card
294
- title="Test Replays"
295
- icon="video"
296
- href="/v7/features/test-replays"
297
- >
298
- Video replays and debugging
299
- </Card>
300
-
301
- <Card
302
- title="Continuous Testing"
303
- icon="arrows-spin"
304
- href="/v7/features/continuous-testing"
305
- >
306
- CI/CD integration guide
307
- </Card>
308
- </CardGroup>