ado-sync 0.1.29 → 0.1.30
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 +79 -7
- package/dist/parsers/csv.d.ts +13 -3
- package/dist/parsers/csv.js +87 -9
- package/dist/parsers/csv.js.map +1 -1
- package/dist/parsers/excel.js +47 -8
- package/dist/parsers/excel.js.map +1 -1
- package/dist/sync/engine.js +5 -1
- package/dist/sync/engine.js.map +1 -1
- package/docs/publish-test-results.md +48 -16
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -217,12 +217,12 @@ ado-sync push
|
|
|
217
217
|
ado-sync pull
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
### C# MSTest / NUnit: create TCs, run tests, publish results
|
|
220
|
+
### C# MSTest / NUnit / SpecFlow: create TCs, run tests, publish results
|
|
221
221
|
|
|
222
222
|
```bash
|
|
223
|
-
# 1. Create TCs and write IDs back into .cs files
|
|
223
|
+
# 1. Create TCs and write IDs back into .cs / .feature files
|
|
224
224
|
ado-sync push --dry-run # preview
|
|
225
|
-
ado-sync push # writes [TestProperty("tc","ID")] / [Property("tc","ID")]
|
|
225
|
+
ado-sync push # writes [TestProperty("tc","ID")] / [Property("tc","ID")] / @tc:ID
|
|
226
226
|
|
|
227
227
|
# 2a. MSTest — TRX contains [TestProperty] values; TC IDs extracted automatically
|
|
228
228
|
dotnet test --logger "trx;LogFileName=results.trx"
|
|
@@ -231,6 +231,10 @@ ado-sync publish-test-results --testResult results/results.trx
|
|
|
231
231
|
# 2b. NUnit — use native XML logger so [Property("tc","ID")] values are included
|
|
232
232
|
dotnet test --logger "nunit3;LogFileName=results.xml"
|
|
233
233
|
ado-sync publish-test-results --testResult results/results.xml
|
|
234
|
+
|
|
235
|
+
# 2c. SpecFlow — TRX format (SpecFlow writes @tc:ID into TestProperty automatically)
|
|
236
|
+
dotnet test --logger "trx;LogFileName=results.trx"
|
|
237
|
+
ado-sync publish-test-results --testResult results/results.trx
|
|
234
238
|
```
|
|
235
239
|
|
|
236
240
|
Recommended `ado-sync.json` for C# MSTest:
|
|
@@ -253,6 +257,25 @@ Recommended `ado-sync.json` for C# MSTest:
|
|
|
253
257
|
}
|
|
254
258
|
```
|
|
255
259
|
|
|
260
|
+
Recommended `ado-sync.json` for C# SpecFlow:
|
|
261
|
+
|
|
262
|
+
```json
|
|
263
|
+
{
|
|
264
|
+
"orgUrl": "https://dev.azure.com/my-org",
|
|
265
|
+
"project": "MyProject",
|
|
266
|
+
"auth": { "type": "pat", "token": "$AZURE_DEVOPS_TOKEN" },
|
|
267
|
+
"testPlan": { "id": 1234 },
|
|
268
|
+
"local": {
|
|
269
|
+
"type": "gherkin",
|
|
270
|
+
"include": ["Features/**/*.feature"]
|
|
271
|
+
},
|
|
272
|
+
"sync": {
|
|
273
|
+
"tagPrefix": "tc",
|
|
274
|
+
"markAutomated": true
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
256
279
|
### Java JUnit / TestNG: create TCs and publish results
|
|
257
280
|
|
|
258
281
|
```bash
|
|
@@ -336,6 +359,40 @@ npx jest --reporters=default --reporters=jest-junit
|
|
|
336
359
|
ado-sync publish-test-results --testResult results/junit.xml --testResultFormat junit
|
|
337
360
|
```
|
|
338
361
|
|
|
362
|
+
### Playwright: create TCs and publish results with screenshots
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# 1. Create TCs and write IDs back into .ts spec files
|
|
366
|
+
ado-sync push --dry-run # preview
|
|
367
|
+
ado-sync push # writes // @tc:ID above each test()
|
|
368
|
+
|
|
369
|
+
# 2. Add @tc:ID tag to test title and run Playwright with JSON reporter
|
|
370
|
+
# playwright.config.ts: reporter: [['json', { outputFile: 'results/playwright.json' }]]
|
|
371
|
+
npx playwright test
|
|
372
|
+
|
|
373
|
+
# 3. Publish — TC IDs from @tc:ID in test title; screenshots/videos from attachments[]
|
|
374
|
+
ado-sync publish-test-results --testResult results/playwright.json
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Recommended `ado-sync.json` for Playwright:
|
|
378
|
+
|
|
379
|
+
```json
|
|
380
|
+
{
|
|
381
|
+
"orgUrl": "https://dev.azure.com/my-org",
|
|
382
|
+
"project": "MyProject",
|
|
383
|
+
"auth": { "type": "pat", "token": "$AZURE_DEVOPS_TOKEN" },
|
|
384
|
+
"testPlan": { "id": 1234 },
|
|
385
|
+
"local": {
|
|
386
|
+
"type": "javascript",
|
|
387
|
+
"include": ["tests/**/*.spec.ts"],
|
|
388
|
+
"exclude": ["**/*.helper.ts"]
|
|
389
|
+
},
|
|
390
|
+
"sync": {
|
|
391
|
+
"markAutomated": true
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
339
396
|
Recommended `ado-sync.json` for Jest/Jasmine/WebdriverIO:
|
|
340
397
|
|
|
341
398
|
```json
|
|
@@ -413,13 +470,16 @@ The comparison uses title + steps + description. Touch any step to force an upda
|
|
|
413
470
|
Delete `.ado-sync-state.json` to reset the cache. The next push re-populates it from Azure.
|
|
414
471
|
|
|
415
472
|
**CSV/Excel IDs not written back**
|
|
416
|
-
Ensure the file is not open in another application
|
|
473
|
+
Ensure the file is not open in another application and that `sync.disableLocalChanges` is not `true`. If a TC was deleted from Azure and re-created on push, the old ID in column A is now replaced with the new ID automatically.
|
|
417
474
|
|
|
418
475
|
**Excel file not parsed / `No worksheet found`**
|
|
419
|
-
ado-sync
|
|
476
|
+
ado-sync searches for the first worksheet by reading `xl/_rels/workbook.xml.rels` from the xlsx ZIP, falling back to common names (`sheet.xml`, `sheet1.xml`). Non-standard sheet names and multi-sheet workbooks are handled automatically. If parsing still fails, re-export from Azure DevOps.
|
|
420
477
|
|
|
421
|
-
**Pull has no effect on CSV
|
|
422
|
-
|
|
478
|
+
**Pull has no effect on CSV files**
|
|
479
|
+
CSV pull is now supported — `ado-sync pull` updates the Title and step rows in CSV files to match the current Azure DevOps Test Case. Run `ado-sync pull --dry-run` first to preview changes.
|
|
480
|
+
|
|
481
|
+
**Pull has no effect on Excel files**
|
|
482
|
+
Excel (xlsx) pull is not yet supported — only push. Use CSV export instead if bidirectional sync is needed, or pull the changes manually and re-export.
|
|
423
483
|
|
|
424
484
|
**C# categories show as constant names instead of values**
|
|
425
485
|
ado-sync resolves `const string` declarations in the same file. Constants defined in a base class are not resolved — use string literals in `[TestCategory("...")]` for reliable tagging.
|
|
@@ -447,3 +507,15 @@ ado-sync detects `it()`, `test()`, `xit()`, `xtest()`, and `.only`/`.skip`/`.con
|
|
|
447
507
|
|
|
448
508
|
**JavaScript ID not written back**
|
|
449
509
|
ado-sync inserts `// @tc:ID` immediately above the `it()`/`test()` line. There must be no blank line between the comment and the test function call.
|
|
510
|
+
|
|
511
|
+
**`publish-test-results` — "TestPointId, testCaseId must be specified for planned test results"**
|
|
512
|
+
This error means the Test Run was created as a "planned" run (tied to a test plan), which requires test point IDs for each result. ado-sync creates standalone automated runs — do not pass `plan.id` in `runModel`. This is handled automatically; if you see this error, ensure you are on the latest version.
|
|
513
|
+
|
|
514
|
+
**TRX screenshots / `<ResultFiles>` not attached**
|
|
515
|
+
In TRX format, `<ResultFiles>` is a child of `<Output>`, not a direct child of `<UnitTestResult>`. Make sure `TestContext.AddResultFile("path/to/screenshot.png")` is called in your test code. ado-sync reads from the correct nested path automatically.
|
|
516
|
+
|
|
517
|
+
**Attachment paths resolve incorrectly**
|
|
518
|
+
Attachment paths embedded in result files (TRX `<ResultFiles>`, NUnit `<filePath>`, JUnit `[[ATTACHMENT|path]]`, Playwright `attachments[].path`) are resolved **relative to the result file's directory**, not the working directory. Keep result files and screenshots in the same output folder hierarchy as your test runner produces them.
|
|
519
|
+
|
|
520
|
+
**"Invalid AttachmentType specified" from Azure DevOps API**
|
|
521
|
+
Azure DevOps only accepts `GeneralAttachment` and `ConsoleLog` as attachment types. Screenshot and video files are uploaded as `GeneralAttachment` automatically — no special type is needed.
|
package/dist/parsers/csv.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* ID writeback: updates column A on the title row for newly created test cases.
|
|
12
12
|
*/
|
|
13
|
-
import { LinkConfig, ParsedTest } from '../types';
|
|
13
|
+
import { LinkConfig, ParsedStep, ParsedTest } from '../types';
|
|
14
14
|
export declare function parseCsvFile(filePath: string, tagPrefix: string, linkConfigs?: LinkConfig[]): ParsedTest[];
|
|
15
15
|
/**
|
|
16
16
|
* Write (or update) the TC ID in column A of the matching title row in a CSV file.
|
|
@@ -18,7 +18,17 @@ export declare function parseCsvFile(filePath: string, tagPrefix: string, linkCo
|
|
|
18
18
|
* Strategy:
|
|
19
19
|
* 1. Parse the CSV into raw lines.
|
|
20
20
|
* 2. Find the data row whose Title column (col 2) normalises to the test's title.
|
|
21
|
-
* 3. Replace the ID field (col 0) with the new numeric id.
|
|
22
|
-
* 4. Re-serialise and write back.
|
|
21
|
+
* 3. Replace (or insert) the ID field (col 0) with the new numeric id.
|
|
22
|
+
* 4. Re-serialise with proper quoting and write back.
|
|
23
|
+
*
|
|
24
|
+
* Note: rows that already have an ID are updated too — this handles the case
|
|
25
|
+
* where a deleted TC is re-created with a new ID.
|
|
23
26
|
*/
|
|
24
27
|
export declare function writebackCsv(filePath: string, title: string, id: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Apply a title + steps update from Azure DevOps back into a CSV file.
|
|
30
|
+
*
|
|
31
|
+
* Finds the row matching `currentTitle`, updates the Title cell (col C) and
|
|
32
|
+
* replaces all subsequent step rows with the new steps from Azure.
|
|
33
|
+
*/
|
|
34
|
+
export declare function applyRemoteToCsv(filePath: string, currentTitle: string, newTitle: string, newSteps: ParsedStep[]): void;
|
package/dist/parsers/csv.js
CHANGED
|
@@ -47,6 +47,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
48
|
exports.parseCsvFile = parseCsvFile;
|
|
49
49
|
exports.writebackCsv = writebackCsv;
|
|
50
|
+
exports.applyRemoteToCsv = applyRemoteToCsv;
|
|
50
51
|
const fs = __importStar(require("fs"));
|
|
51
52
|
const tabular_1 = require("./tabular");
|
|
52
53
|
// ─── RFC-4180 CSV parser ───────────────────────────────────────────────────────
|
|
@@ -108,6 +109,18 @@ function parseCsvFile(filePath, tagPrefix, linkConfigs) {
|
|
|
108
109
|
}));
|
|
109
110
|
return (0, tabular_1.parseTabularRows)(rows, filePath, tagPrefix, linkConfigs);
|
|
110
111
|
}
|
|
112
|
+
// ─── CSV serialiser ───────────────────────────────────────────────────────────
|
|
113
|
+
/** Quote a single cell value if it contains commas, quotes, or newlines. */
|
|
114
|
+
function serializeCsvCell(value) {
|
|
115
|
+
if (value.includes(',') || value.includes('"') || value.includes('\n') || value.includes('\r')) {
|
|
116
|
+
return '"' + value.replace(/"/g, '""') + '"';
|
|
117
|
+
}
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
/** Serialise a row of already-unquoted cell values back to a valid CSV line. */
|
|
121
|
+
function serializeCsvLine(cells) {
|
|
122
|
+
return cells.map(serializeCsvCell).join(',');
|
|
123
|
+
}
|
|
111
124
|
// ─── ID writeback ─────────────────────────────────────────────────────────────
|
|
112
125
|
/**
|
|
113
126
|
* Write (or update) the TC ID in column A of the matching title row in a CSV file.
|
|
@@ -115,8 +128,11 @@ function parseCsvFile(filePath, tagPrefix, linkConfigs) {
|
|
|
115
128
|
* Strategy:
|
|
116
129
|
* 1. Parse the CSV into raw lines.
|
|
117
130
|
* 2. Find the data row whose Title column (col 2) normalises to the test's title.
|
|
118
|
-
* 3. Replace the ID field (col 0) with the new numeric id.
|
|
119
|
-
* 4. Re-serialise and write back.
|
|
131
|
+
* 3. Replace (or insert) the ID field (col 0) with the new numeric id.
|
|
132
|
+
* 4. Re-serialise with proper quoting and write back.
|
|
133
|
+
*
|
|
134
|
+
* Note: rows that already have an ID are updated too — this handles the case
|
|
135
|
+
* where a deleted TC is re-created with a new ID.
|
|
120
136
|
*/
|
|
121
137
|
function writebackCsv(filePath, title, id) {
|
|
122
138
|
const source = fs.readFileSync(filePath, 'utf8');
|
|
@@ -127,17 +143,79 @@ function writebackCsv(filePath, title, id) {
|
|
|
127
143
|
const normalize = (s) => s.replace(TITLE_STRIP_RE, '').trim();
|
|
128
144
|
const updated = lines.map((line) => {
|
|
129
145
|
const cells = parseCsvLine(line);
|
|
130
|
-
const titleCell = cells[2]?.
|
|
131
|
-
const stepCell = cells[3]?.
|
|
132
|
-
|
|
133
|
-
//
|
|
134
|
-
if (titleCell && !stepCell &&
|
|
135
|
-
cells[0] =
|
|
136
|
-
|
|
146
|
+
const titleCell = cells[2]?.trim() ?? '';
|
|
147
|
+
const stepCell = cells[3]?.trim() ?? '';
|
|
148
|
+
// Match title rows (non-empty title, no step number) by normalised title.
|
|
149
|
+
// Allow any existing ID value — handles re-creation of deleted TCs.
|
|
150
|
+
if (titleCell && !stepCell && normalize(titleCell) === title) {
|
|
151
|
+
cells[0] = String(id);
|
|
152
|
+
// Pad to at least 9 columns before re-serialising
|
|
153
|
+
while (cells.length < 9)
|
|
154
|
+
cells.push('');
|
|
155
|
+
return serializeCsvLine(cells);
|
|
137
156
|
}
|
|
138
157
|
return line;
|
|
139
158
|
});
|
|
140
159
|
const result = (hasBom ? '\uFEFF' : '') + updated.join('\n');
|
|
141
160
|
fs.writeFileSync(filePath, result, 'utf8');
|
|
142
161
|
}
|
|
162
|
+
// ─── Pull / apply remote changes ─────────────────────────────────────────────
|
|
163
|
+
/**
|
|
164
|
+
* Apply a title + steps update from Azure DevOps back into a CSV file.
|
|
165
|
+
*
|
|
166
|
+
* Finds the row matching `currentTitle`, updates the Title cell (col C) and
|
|
167
|
+
* replaces all subsequent step rows with the new steps from Azure.
|
|
168
|
+
*/
|
|
169
|
+
function applyRemoteToCsv(filePath, currentTitle, newTitle, newSteps) {
|
|
170
|
+
const source = fs.readFileSync(filePath, 'utf8');
|
|
171
|
+
const hasBom = source.startsWith('\uFEFF');
|
|
172
|
+
const text = hasBom ? source.slice(1) : source;
|
|
173
|
+
const lines = text.split(/\r?\n/);
|
|
174
|
+
const TITLE_STRIP_RE = /^(Scenario Outline|Scenario)\s*:\s*/i;
|
|
175
|
+
const normalize = (s) => s.replace(TITLE_STRIP_RE, '').trim();
|
|
176
|
+
// Find the title row
|
|
177
|
+
let titleRowIdx = -1;
|
|
178
|
+
for (let i = 0; i < lines.length; i++) {
|
|
179
|
+
const cells = parseCsvLine(lines[i]);
|
|
180
|
+
const titleCell = cells[2]?.trim() ?? '';
|
|
181
|
+
const stepCell = cells[3]?.trim() ?? '';
|
|
182
|
+
if (titleCell && !stepCell && normalize(titleCell) === currentTitle) {
|
|
183
|
+
titleRowIdx = i;
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (titleRowIdx === -1)
|
|
188
|
+
return; // not found
|
|
189
|
+
// Find the extent of the existing step rows (up to the next title row or end)
|
|
190
|
+
let nextTitleIdx = lines.length;
|
|
191
|
+
for (let i = titleRowIdx + 1; i < lines.length; i++) {
|
|
192
|
+
const cells = parseCsvLine(lines[i]);
|
|
193
|
+
const titleCell = cells[2]?.trim() ?? '';
|
|
194
|
+
const stepCell = cells[3]?.trim() ?? '';
|
|
195
|
+
if (titleCell && !stepCell && titleCell.toLowerCase() !== 'title') {
|
|
196
|
+
nextTitleIdx = i;
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Update the title row — preserve ID and prefix ("Scenario: " etc.)
|
|
201
|
+
const titleRowCells = parseCsvLine(lines[titleRowIdx]);
|
|
202
|
+
while (titleRowCells.length < 9)
|
|
203
|
+
titleRowCells.push('');
|
|
204
|
+
const prefix = (titleRowCells[2]?.match(TITLE_STRIP_RE)?.[0] ?? '');
|
|
205
|
+
titleRowCells[2] = prefix + newTitle;
|
|
206
|
+
// Build new step rows using the Azure step action text (already includes keyword)
|
|
207
|
+
const newStepRows = newSteps.map((step, idx) => {
|
|
208
|
+
const action = step.text; // Azure action already includes "Given"/"When"/etc.
|
|
209
|
+
const cells = ['', '', '', String(idx + 1), action, step.expected ?? '', '', '', ''];
|
|
210
|
+
return serializeCsvLine(cells);
|
|
211
|
+
});
|
|
212
|
+
const updatedLines = [
|
|
213
|
+
...lines.slice(0, titleRowIdx),
|
|
214
|
+
serializeCsvLine(titleRowCells),
|
|
215
|
+
...newStepRows,
|
|
216
|
+
...lines.slice(nextTitleIdx),
|
|
217
|
+
];
|
|
218
|
+
const result = (hasBom ? '\uFEFF' : '') + updatedLines.join('\n');
|
|
219
|
+
fs.writeFileSync(filePath, result, 'utf8');
|
|
220
|
+
}
|
|
143
221
|
//# sourceMappingURL=csv.js.map
|
package/dist/parsers/csv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/parsers/csv.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDH,oCAcC;
|
|
1
|
+
{"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/parsers/csv.ts"],"names":[],"mappings":"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"}
|
package/dist/parsers/excel.js
CHANGED
|
@@ -160,6 +160,46 @@ function parseSheetXml(xml, sharedStrings) {
|
|
|
160
160
|
}
|
|
161
161
|
return rows;
|
|
162
162
|
}
|
|
163
|
+
// ─── Worksheet discovery ──────────────────────────────────────────────────────
|
|
164
|
+
/**
|
|
165
|
+
* Locate the first worksheet file inside an xlsx ZIP.
|
|
166
|
+
*
|
|
167
|
+
* Strategy (in order):
|
|
168
|
+
* 1. Try common names: sheet.xml, sheet1.xml (case-insensitive).
|
|
169
|
+
* 2. Read xl/_rels/workbook.xml.rels to find the relationship-mapped path.
|
|
170
|
+
* 3. Fall back to any file under xl/worksheets/.
|
|
171
|
+
*
|
|
172
|
+
* Returns the ZIP entry key (e.g. "xl/worksheets/sheet1.xml") or null.
|
|
173
|
+
*/
|
|
174
|
+
async function findFirstSheetPath(zip) {
|
|
175
|
+
// Fast path: common names used by ADO exports and most tools
|
|
176
|
+
for (const candidate of [
|
|
177
|
+
'xl/worksheets/sheet.xml',
|
|
178
|
+
'xl/worksheets/sheet1.xml',
|
|
179
|
+
'xl/worksheets/Sheet1.xml',
|
|
180
|
+
]) {
|
|
181
|
+
if (zip.file(candidate))
|
|
182
|
+
return candidate;
|
|
183
|
+
}
|
|
184
|
+
// Read workbook relationships to find the actual sheet path
|
|
185
|
+
const relsEntry = zip.file('xl/_rels/workbook.xml.rels');
|
|
186
|
+
if (relsEntry) {
|
|
187
|
+
const relsXml = await relsEntry.async('string');
|
|
188
|
+
// Match the first Relationship of type worksheet
|
|
189
|
+
const m = relsXml.match(/Type="[^"]*\/worksheet"[^>]*Target="([^"]+)"/);
|
|
190
|
+
if (m) {
|
|
191
|
+
// Target is relative to xl/; strip leading '../' or '/' if present
|
|
192
|
+
const target = m[1].replace(/^\.\.\//, '').replace(/^\//, '');
|
|
193
|
+
const fullPath = target.startsWith('xl/') ? target : `xl/${target}`;
|
|
194
|
+
if (zip.file(fullPath))
|
|
195
|
+
return fullPath;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Last-resort: scan all files under xl/worksheets/
|
|
199
|
+
const allFiles = Object.keys(zip.files);
|
|
200
|
+
const sheetFile = allFiles.find((f) => /^xl\/worksheets\/.+\.xml$/i.test(f) && !f.includes('_rels'));
|
|
201
|
+
return sheetFile ?? null;
|
|
202
|
+
}
|
|
163
203
|
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
164
204
|
async function parseExcelFile(filePath, tagPrefix, linkConfigs) {
|
|
165
205
|
const buffer = fs.readFileSync(filePath);
|
|
@@ -169,9 +209,9 @@ async function parseExcelFile(filePath, tagPrefix, linkConfigs) {
|
|
|
169
209
|
const sharedStrings = ssEntry
|
|
170
210
|
? parseSharedStrings(await ssEntry.async('string'))
|
|
171
211
|
: [];
|
|
172
|
-
// Find the worksheet XML
|
|
173
|
-
const
|
|
174
|
-
|
|
212
|
+
// Find the worksheet XML (handles non-standard sheet naming)
|
|
213
|
+
const sheetKey = await findFirstSheetPath(zip);
|
|
214
|
+
const sheetEntry = sheetKey ? zip.file(sheetKey) : null;
|
|
175
215
|
if (!sheetEntry)
|
|
176
216
|
throw new Error(`No worksheet found in ${filePath}`);
|
|
177
217
|
const xml = await sheetEntry.async('string');
|
|
@@ -197,9 +237,7 @@ async function parseExcelFile(filePath, tagPrefix, linkConfigs) {
|
|
|
197
237
|
async function writebackExcel(filePath, title, id) {
|
|
198
238
|
const buffer = fs.readFileSync(filePath);
|
|
199
239
|
const zip = await jszip_1.default.loadAsync(buffer);
|
|
200
|
-
const sheetKey = zip
|
|
201
|
-
zip.file('xl/worksheets/sheet1.xml') ? 'xl/worksheets/sheet1.xml' :
|
|
202
|
-
null;
|
|
240
|
+
const sheetKey = await findFirstSheetPath(zip);
|
|
203
241
|
if (!sheetKey)
|
|
204
242
|
throw new Error(`No worksheet found in ${filePath}`);
|
|
205
243
|
const ssEntry = zip.file('xl/sharedStrings.xml');
|
|
@@ -230,8 +268,9 @@ async function writebackExcel(filePath, title, id) {
|
|
|
230
268
|
const idMatch = getCellAtCol('A');
|
|
231
269
|
const titleVal = titleMatch ? cellValue(titleMatch[0], nsPrefix, sharedStrings) : '';
|
|
232
270
|
const stepVal = stepMatch ? cellValue(stepMatch[0], nsPrefix, sharedStrings) : '';
|
|
233
|
-
|
|
234
|
-
|
|
271
|
+
// Match title rows (non-empty title, no step number) by normalised title.
|
|
272
|
+
// Do NOT guard on existing ID — allows updating the ID when a deleted TC is re-created.
|
|
273
|
+
if (!titleVal || stepVal)
|
|
235
274
|
return open + content + close;
|
|
236
275
|
if (normalise(titleVal) !== title)
|
|
237
276
|
return open + content + close;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"excel.js","sourceRoot":"","sources":["../../src/parsers/excel.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"excel.js","sourceRoot":"","sources":["../../src/parsers/excel.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/engine.js
CHANGED
|
@@ -491,7 +491,11 @@ function applyRemoteToLocal(test, newTitle, newSteps, newDescription, localType,
|
|
|
491
491
|
else if (localType === 'markdown') {
|
|
492
492
|
applyRemoteToMarkdown(test, newTitle, newSteps, newDescription, tagPrefix);
|
|
493
493
|
}
|
|
494
|
-
|
|
494
|
+
else if (localType === 'csv') {
|
|
495
|
+
(0, csv_1.applyRemoteToCsv)(test.filePath, test.title, newTitle, newSteps);
|
|
496
|
+
}
|
|
497
|
+
// excel: pull not yet supported (in-place XML surgery for xlsx is complex)
|
|
498
|
+
// csharp / java / python / javascript: pull not supported (code files are managed locally)
|
|
495
499
|
}
|
|
496
500
|
function applyRemoteToGherkin(test, newTitle, newSteps) {
|
|
497
501
|
const raw = fs.readFileSync(test.filePath, 'utf8');
|
package/dist/sync/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# publish-test-results
|
|
2
2
|
|
|
3
|
-
Parses test result files (TRX, NUnit XML, JUnit, Cucumber JSON) and publishes them to an Azure DevOps Test Run, linking results back to Test Cases either directly by TC ID (when available in the result file) or by `AutomatedTestName` matching.
|
|
3
|
+
Parses test result files (TRX, NUnit XML, JUnit, Cucumber JSON, Playwright JSON) and publishes them to an Azure DevOps Test Run, linking results back to Test Cases either directly by TC ID (when available in the result file) or by `AutomatedTestName` matching.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ ado-sync publish-test-results \
|
|
|
44
44
|
|
|
45
45
|
| Format | Extension | Auto-detected | TC ID in file? | Attachments extracted |
|
|
46
46
|
|--------|-----------|---------------|----------------|----------------------|
|
|
47
|
-
| TRX (MSTest / VSTest) | `.trx` | Yes (`<TestRun>` root) | Yes — via `[TestProperty("tc","ID")]` | `<Output><StdOut>` + `<ResultFiles>` |
|
|
47
|
+
| TRX (MSTest / SpecFlow / VSTest) | `.trx` | Yes (`<TestRun>` root) | Yes — via `[TestProperty("tc","ID")]` | `<Output><StdOut>` + `<Output><ResultFiles>` |
|
|
48
48
|
| NUnit XML (native) | `.xml` | Yes (`<test-run>` root) | Yes — via `[Property("tc","ID")]` | `<output>` + `<attachments>` |
|
|
49
49
|
| JUnit XML | `.xml` | Yes (`<testsuites>` / `<testsuite>` root) | Optional — via `<property name="tc" value="ID"/>` | `<system-out>`, `<system-err>`, `[[ATTACHMENT\|path]]` (Playwright) |
|
|
50
50
|
| Cucumber JSON | `.json` | Yes (JSON array, Cucumber format) | Yes — via `@tc:ID` tag on scenario | `step.embeddings[]` (base64 screenshots/video) |
|
|
@@ -52,6 +52,14 @@ ado-sync publish-test-results \
|
|
|
52
52
|
|
|
53
53
|
> **NUnit via TRX**: when NUnit tests are run through the VSTest adapter (`--logger trx`), `[Property]` values are **not** included in the TRX output. Use `--logger "nunit3;LogFileName=results.xml"` to get the native NUnit XML format, which does include property values.
|
|
54
54
|
|
|
55
|
+
> **TRX `<ResultFiles>` nesting**: In TRX format, `<ResultFiles>` is a child of `<Output>`, not a direct child of `<UnitTestResult>`. ado-sync reads from `UnitTestResult > Output > ResultFiles > ResultFile` — paths are resolved relative to the result file's directory.
|
|
56
|
+
|
|
57
|
+
> **Attachment paths**: All file paths embedded in result files (`<ResultFile path="...">` in TRX, `<filePath>` in NUnit XML, `[[ATTACHMENT|path]]` in JUnit, `attachments[].path` in Playwright JSON) are resolved **relative to the result file's directory**, not the working directory. Ensure screenshots and other artifacts stay in the same folder hierarchy as your test runner produces.
|
|
58
|
+
|
|
59
|
+
> **Automated vs planned runs**: ado-sync creates **standalone automated runs** without a test plan association. Do not add `plan.id` to the run model — doing so makes Azure DevOps treat the run as "planned", requiring `testPointId` and `testCaseRevision` for every result (which ado-sync doesn't provide). TC linking is done via `testCase.id` on individual results, which works for automated runs without a plan association.
|
|
60
|
+
|
|
61
|
+
> **Valid attachment types**: Azure DevOps only accepts `GeneralAttachment` and `ConsoleLog` as `attachmentType` values. ado-sync maps screenshots, images, and binary files to `GeneralAttachment`; plain text and log files to `ConsoleLog`. Other type names (e.g. `Screenshot`, `Log`, `VideoLog`) will cause a 400 error.
|
|
62
|
+
|
|
55
63
|
### How TC linking works
|
|
56
64
|
|
|
57
65
|
Results are linked to Azure Test Cases in priority order:
|
|
@@ -88,6 +96,25 @@ ado-sync publish-test-results --testResult results/results.trx
|
|
|
88
96
|
|
|
89
97
|
---
|
|
90
98
|
|
|
99
|
+
### C# SpecFlow
|
|
100
|
+
|
|
101
|
+
SpecFlow generates TRX output via the VSTest adapter. ado-sync reads `@tc:ID` tags from the Gherkin `@tc:ID` tag embedded as `[TestProperty("tc","ID")]` in the TRX by SpecFlow's runner.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 1. Push feature files to create TCs — @tc:ID is written back into .feature files
|
|
105
|
+
ado-sync push
|
|
106
|
+
|
|
107
|
+
# 2. Run SpecFlow tests (generates TRX)
|
|
108
|
+
dotnet test --logger "trx;LogFileName=results.trx"
|
|
109
|
+
|
|
110
|
+
# 3. Publish results
|
|
111
|
+
ado-sync publish-test-results --testResult results/results.trx
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
SpecFlow uses `local.type: gherkin` (same as Cucumber). TC IDs are `@tc:ID` Gherkin tags, which SpecFlow embeds into the TRX as `TestProperty` values automatically.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
91
118
|
### Java JUnit 4 / JUnit 5 (Maven Surefire)
|
|
92
119
|
|
|
93
120
|
Maven Surefire generates JUnit XML with `classname` = FQCN and `name` = method name. ado-sync builds `automatedTestName` as `FQCN.methodName` on push, which matches the `classname.name` format in the JUnit XML automatically.
|
|
@@ -276,18 +303,19 @@ ado-sync publish-test-results \
|
|
|
276
303
|
|
|
277
304
|
---
|
|
278
305
|
|
|
279
|
-
| Framework | Result format | TC ID in file | Attachments uploaded |
|
|
280
|
-
|
|
281
|
-
| C# MSTest | TRX | ✅ `[TestProperty("tc","ID")]` | `<Output><StdOut>` +
|
|
282
|
-
| C# NUnit | NUnit XML | ✅ `[Property("tc","ID")]` | `<output>` text +
|
|
283
|
-
|
|
|
284
|
-
| Java
|
|
285
|
-
|
|
|
286
|
-
|
|
|
287
|
-
|
|
|
288
|
-
|
|
|
289
|
-
|
|
|
290
|
-
| Playwright |
|
|
306
|
+
| Framework | Result format | TC ID in file | Attachments uploaded | Live-tested |
|
|
307
|
+
|-----------|---------------|---------------|----------------------|-------------|
|
|
308
|
+
| C# MSTest | TRX | ✅ `[TestProperty("tc","ID")]` | `<Output><StdOut>` + `<Output><ResultFiles>` files | ✅ |
|
|
309
|
+
| C# NUnit | NUnit XML | ✅ `[Property("tc","ID")]` | `<output>` text + `<attachments><filePath>` files | ✅ |
|
|
310
|
+
| C# SpecFlow | TRX | ✅ `@tc:ID` → `[TestProperty]` | `<Output><StdOut>` + `<Output><ResultFiles>` files | ✅ |
|
|
311
|
+
| Java JUnit 4/5 | JUnit XML | ⚠️ optional `<property name="tc">` | `<system-out>`, `<system-err>` | ✅ |
|
|
312
|
+
| Java TestNG | JUnit XML | ⚠️ optional `<property name="tc">` | `<system-out>`, `<system-err>` | ✅ |
|
|
313
|
+
| Python pytest | JUnit XML | ⚠️ optional (conftest.py hook) | `<system-out>`, `<system-err>` | ✅ |
|
|
314
|
+
| Jest | JUnit XML | ⚠️ optional `<property name="tc">` | `<system-out>`, `<system-err>` | ✅ |
|
|
315
|
+
| WebdriverIO / Jasmine | JUnit XML | ⚠️ optional `<property name="tc">` | `<system-out>`, `<system-err>` | ✅ |
|
|
316
|
+
| Cucumber JS | Cucumber JSON | ✅ `@tc:ID` tag | `step.embeddings[]` (base64 screenshots/video) | ✅ |
|
|
317
|
+
| Playwright | Playwright JSON | Via `@tc:ID` in test title | Files from `attachments[].path` (screenshots, videos, traces) | ✅ |
|
|
318
|
+
| Playwright | JUnit XML | Via `@tc:ID` in test title | `[[ATTACHMENT\|path]]` referenced files | ✅ |
|
|
291
319
|
|
|
292
320
|
---
|
|
293
321
|
|
|
@@ -299,11 +327,15 @@ ado-sync uploads screenshots, videos, and logs from test results to the correspo
|
|
|
299
327
|
|
|
300
328
|
| Format | Extracted automatically |
|
|
301
329
|
|--------|------------------------|
|
|
302
|
-
| TRX | `<Output><StdOut>` → console log; `<ResultFiles><ResultFile>` → files on disk |
|
|
330
|
+
| TRX | `<Output><StdOut>` → console log; `<Output><ResultFiles><ResultFile path="...">` → files on disk |
|
|
303
331
|
| NUnit XML | `<output>` → console log; `<attachments><attachment><filePath>` → files on disk |
|
|
304
332
|
| JUnit XML | `<system-out>` → log; `<system-err>` → log; `[[ATTACHMENT\|path]]` → Playwright files |
|
|
305
333
|
| Cucumber JSON | `step.embeddings[]` → base64-encoded screenshots/video |
|
|
306
|
-
| Playwright JSON | `results[].attachments[]` → files on disk (screenshots, videos, traces) |
|
|
334
|
+
| Playwright JSON | `results[].attachments[].path` → files on disk (screenshots, videos, traces) |
|
|
335
|
+
|
|
336
|
+
> **Note**: All file paths are resolved relative to the result file's directory, not the process working directory. This matches how test runners (Playwright, MSTest, NUnit) write relative paths in their output.
|
|
337
|
+
|
|
338
|
+
> **Attachment types**: Azure DevOps accepts only `GeneralAttachment` (images, videos, binary files) and `ConsoleLog` (text, logs) as attachment type values. ado-sync maps all file types to one of these two automatically.
|
|
307
339
|
|
|
308
340
|
### `--attachmentsFolder` — folder-based attachment upload
|
|
309
341
|
|