@wp-tester/phpunit 0.0.4 → 0.1.0
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/dist/cache-fetch.d.ts.map +1 -1
- package/dist/cache-fetch.js +63 -5
- package/dist/cache-fetch.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runner.d.ts +24 -3
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +189 -24
- package/dist/runner.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wordpress-test-lib.d.ts +5 -0
- package/dist/wordpress-test-lib.d.ts.map +1 -1
- package/dist/wordpress-test-lib.js +16 -4
- package/dist/wordpress-test-lib.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-fetch.d.ts","sourceRoot":"","sources":["../src/cache-fetch.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,YAAY,QAAiB,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAsB,CAAC;AAC/C,eAAO,MAAM,YAAY,QAA0B,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"cache-fetch.d.ts","sourceRoot":"","sources":["../src/cache-fetch.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,YAAY,QAAiB,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAsB,CAAC;AAC/C,eAAO,MAAM,YAAY,QAA0B,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuCD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiF5E"}
|
package/dist/cache-fetch.js
CHANGED
|
@@ -12,6 +12,39 @@ export const CACHE_DISABLED = -1;
|
|
|
12
12
|
export const CACHE_1_HOUR = 60 * 60 * 1000;
|
|
13
13
|
export const CACHE_1_DAY = 24 * 60 * 60 * 1000;
|
|
14
14
|
export const CACHE_1_WEEK = 7 * 24 * 60 * 60 * 1000;
|
|
15
|
+
/**
|
|
16
|
+
* Validate that a file is a valid zip file by checking for the end of central directory signature
|
|
17
|
+
* The EOCD can have a variable-length comment, so we search backwards from the end
|
|
18
|
+
*/
|
|
19
|
+
function validateZipFile(filePath) {
|
|
20
|
+
const fd = fs.openSync(filePath, 'r');
|
|
21
|
+
try {
|
|
22
|
+
const stats = fs.fstatSync(fd);
|
|
23
|
+
const fileSize = stats.size;
|
|
24
|
+
// ZIP files must have at least 22 bytes (minimum EOCD size)
|
|
25
|
+
if (fileSize < 22) {
|
|
26
|
+
throw new Error('File too small to be a valid zip file');
|
|
27
|
+
}
|
|
28
|
+
// Maximum comment length is 65535 bytes, so search last 65KB + 22 bytes
|
|
29
|
+
const searchSize = Math.min(fileSize, 65535 + 22);
|
|
30
|
+
const buffer = Buffer.alloc(searchSize);
|
|
31
|
+
fs.readSync(fd, buffer, 0, searchSize, fileSize - searchSize);
|
|
32
|
+
// Search backwards for EOCD signature (0x50, 0x4b, 0x05, 0x06 in little-endian)
|
|
33
|
+
let found = false;
|
|
34
|
+
for (let i = searchSize - 22; i >= 0; i--) {
|
|
35
|
+
if (buffer[i] === 0x50 && buffer[i + 1] === 0x4b && buffer[i + 2] === 0x05 && buffer[i + 3] === 0x06) {
|
|
36
|
+
found = true;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (!found) {
|
|
41
|
+
throw new Error('End of central directory record signature not found. Either not a zip file, or file is truncated.');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
fs.closeSync(fd);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
15
48
|
/**
|
|
16
49
|
* Download a file and cache it locally, with retry logic
|
|
17
50
|
*
|
|
@@ -31,7 +64,17 @@ export async function cacheFetch(options) {
|
|
|
31
64
|
}
|
|
32
65
|
// If cacheExpiration is 0 (CACHE_FOREVER), cache never expires
|
|
33
66
|
else if (cacheExpiration === 0) {
|
|
34
|
-
|
|
67
|
+
// Validate cached file before returning
|
|
68
|
+
try {
|
|
69
|
+
if (url.endsWith('.zip')) {
|
|
70
|
+
validateZipFile(cacheFilePath);
|
|
71
|
+
}
|
|
72
|
+
return cacheFilePath;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Cached file is corrupted, delete and re-download
|
|
76
|
+
fs.unlinkSync(cacheFilePath);
|
|
77
|
+
}
|
|
35
78
|
}
|
|
36
79
|
// For positive values, check if cache has expired
|
|
37
80
|
else {
|
|
@@ -39,17 +82,32 @@ export async function cacheFetch(options) {
|
|
|
39
82
|
const now = Date.now();
|
|
40
83
|
const fileAge = now - stats.mtimeMs;
|
|
41
84
|
if (fileAge < cacheExpiration) {
|
|
42
|
-
// Cache
|
|
43
|
-
|
|
85
|
+
// Cache exists and hasn't expired, validate before returning
|
|
86
|
+
try {
|
|
87
|
+
if (url.endsWith('.zip')) {
|
|
88
|
+
validateZipFile(cacheFilePath);
|
|
89
|
+
}
|
|
90
|
+
return cacheFilePath;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Cached file is corrupted, delete and re-download
|
|
94
|
+
fs.unlinkSync(cacheFilePath);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// Cache has expired, delete it
|
|
99
|
+
fs.unlinkSync(cacheFilePath);
|
|
44
100
|
}
|
|
45
|
-
// Cache has expired, delete it
|
|
46
|
-
fs.unlinkSync(cacheFilePath);
|
|
47
101
|
}
|
|
48
102
|
}
|
|
49
103
|
// Ensure cache directory exists
|
|
50
104
|
fs.mkdirSync(cacheDir, { recursive: true });
|
|
51
105
|
try {
|
|
52
106
|
await downloadFileWithRetry(url, cacheFilePath, maxRetries);
|
|
107
|
+
// Validate the downloaded file if it's a zip
|
|
108
|
+
if (url.endsWith('.zip')) {
|
|
109
|
+
validateZipFile(cacheFilePath);
|
|
110
|
+
}
|
|
53
111
|
return cacheFilePath;
|
|
54
112
|
}
|
|
55
113
|
catch (error) {
|
package/dist/cache-fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-fetch.js","sourceRoot":"","sources":["../src/cache-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAgCpD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,EACJ,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAC7D,QAAQ,EACR,GAAG,EACH,eAAe,GAAG,WAAW,EAC7B,UAAU,GAAG,CAAC,GACf,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEtD,iDAAiD;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,gEAAgE;QAChE,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,wBAAwB;YACxB,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,+DAA+D;aAC1D,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-fetch.js","sourceRoot":"","sources":["../src/cache-fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
|
-
import type { WPTesterConfig } from "@wp-tester/config";
|
|
1
|
+
import type { WPTesterConfig, ResolvedWPTesterConfig } from "@wp-tester/config";
|
|
2
2
|
import type { Report } from "@wp-tester/results";
|
|
3
3
|
export declare function shouldRunPhpunitTests(config: WPTesterConfig): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Options for running PHPUnit tests
|
|
6
|
+
*/
|
|
7
|
+
export interface RunPhpunitTestsOptions {
|
|
8
|
+
/** Additional PHPUnit arguments to append */
|
|
9
|
+
phpunitArgs?: string[];
|
|
10
|
+
}
|
|
4
11
|
/**
|
|
5
12
|
* Run PHPUnit tests in WordPress Playground environment
|
|
6
13
|
*
|
|
7
|
-
* @param config -
|
|
14
|
+
* @param config - Resolved test configuration
|
|
15
|
+
* @param phpunitArgsOrOptions - Additional PHPUnit arguments or options object
|
|
8
16
|
* @returns CTRF report with test results
|
|
9
17
|
*/
|
|
10
|
-
export declare function runPhpunitTests(config:
|
|
18
|
+
export declare function runPhpunitTests(config: ResolvedWPTesterConfig, phpunitArgsOrOptions?: string[] | RunPhpunitTestsOptions): Promise<Report>;
|
|
19
|
+
interface PlaygroundClient {
|
|
20
|
+
fileExists(path: string): Promise<boolean>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve PHPUnit arguments to map host paths to VFS paths
|
|
24
|
+
*
|
|
25
|
+
* @param args - Original arguments
|
|
26
|
+
* @param config - Resolved configuration
|
|
27
|
+
* @param playground - Playground client for checking VFS file existence
|
|
28
|
+
* @returns Resolved arguments
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolvePhpunitArgs(args: string[], config: ResolvedWPTesterConfig, playground: PlaygroundClient): Promise<string[]>;
|
|
31
|
+
export {};
|
|
11
32
|
//# sourceMappingURL=runner.d.ts.map
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAErE;AAsSD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,sBAAsB,EAC9B,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,sBAAsB,GACvD,OAAO,CAAC,MAAM,CAAC,CAwEjB;AA6BD,UAAU,gBAAgB;IACxB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAoDnB"}
|
package/dist/runner.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EMPTY_REPORT, mergeReports,
|
|
1
|
+
import { parseBootstrapPath, hostToVfs, resolveAbsolute, } from "@wp-tester/config";
|
|
2
|
+
import { EMPTY_REPORT, mergeReports, PHPUnitStreamingReporter, TeamCityParser } from "@wp-tester/results";
|
|
3
3
|
import { startPlayground } from "@wp-tester/runtime";
|
|
4
4
|
import { mountWordPressTestLibrary } from "./wordpress-test-lib.js";
|
|
5
5
|
import { access } from "fs/promises";
|
|
@@ -16,15 +16,13 @@ export function shouldRunPhpunitTests(config) {
|
|
|
16
16
|
*/
|
|
17
17
|
async function runPhpunitTestsForEnvironment(config, environment, hostPhpunitConfigPath) {
|
|
18
18
|
const testMode = config.tests.phpunit.testMode;
|
|
19
|
-
let
|
|
20
|
-
|
|
19
|
+
let environmentWithMount = {
|
|
20
|
+
...environment,
|
|
21
|
+
};
|
|
21
22
|
// Prepare environment with WordPress test library for unit tests only
|
|
22
23
|
// Integration tests use standard WordPress installation via wp-load.php
|
|
23
24
|
if (testMode === "unit") {
|
|
24
25
|
environmentWithMount = await mountWordPressTestLibrary(environment);
|
|
25
|
-
phpUnitEnvironmentVariables = {
|
|
26
|
-
WP_TESTS_DIR: "/tmp/wordpress-tests-lib",
|
|
27
|
-
};
|
|
28
26
|
}
|
|
29
27
|
// Start playground with all mounts and steps including test library initialization
|
|
30
28
|
const runtime = await startPlayground(environmentWithMount);
|
|
@@ -89,16 +87,24 @@ async function runPhpunitTestsForEnvironment(config, environment, hostPhpunitCon
|
|
|
89
87
|
cliArgs.push("--bootstrap", bootstrapFilePath);
|
|
90
88
|
}
|
|
91
89
|
// Append additional PHPUnit arguments from config
|
|
90
|
+
// Resolve file/directory paths from host to VFS
|
|
92
91
|
const phpunitArgs = config.tests.phpunit.phpunitArgs;
|
|
93
92
|
if (phpunitArgs && phpunitArgs.length > 0) {
|
|
94
|
-
|
|
93
|
+
// Use the helper to resolve arguments
|
|
94
|
+
const resolvedArgs = await resolvePhpunitArgs(phpunitArgs, config, playground);
|
|
95
|
+
cliArgs.push(...resolvedArgs);
|
|
95
96
|
}
|
|
96
97
|
// Create streaming reporter
|
|
97
98
|
// Disable summary since the CLI will print a combined summary
|
|
98
|
-
const useStreaming = config.reporters?.
|
|
99
|
-
|
|
99
|
+
const useStreaming = config.reporters?.default !== undefined;
|
|
100
|
+
// Get filter options from config reporters (only if it's an object, not boolean)
|
|
101
|
+
const filter = typeof config.reporters?.default === 'object'
|
|
102
|
+
? config.reporters.default
|
|
103
|
+
: undefined;
|
|
104
|
+
const reporter = new PHPUnitStreamingReporter({
|
|
100
105
|
enabled: useStreaming,
|
|
101
106
|
showSummary: false,
|
|
107
|
+
filter,
|
|
102
108
|
});
|
|
103
109
|
// Signal test run start to initialize timing
|
|
104
110
|
reporter.onEvent({
|
|
@@ -107,22 +113,25 @@ async function runPhpunitTestsForEnvironment(config, environment, hostPhpunitCon
|
|
|
107
113
|
});
|
|
108
114
|
reporter.onEvent({
|
|
109
115
|
type: "suite:start",
|
|
110
|
-
name:
|
|
116
|
+
name: `${environment.name} - PHPUnit ${testMode} tests`,
|
|
111
117
|
});
|
|
112
118
|
// Create TeamCity parser connected to the reporter
|
|
113
119
|
const parser = TeamCityParser.withReporter(reporter);
|
|
114
120
|
// Run PHPUnit tests
|
|
115
121
|
const result = await playground.cli(cliArgs, {
|
|
116
|
-
env:
|
|
122
|
+
env: environmentWithMount.env,
|
|
117
123
|
});
|
|
118
124
|
// Process stdout and stderr with TeamCity parser for streaming results
|
|
119
125
|
// PHPUnit outputs TeamCity format to both stdout and stderr
|
|
120
126
|
const textDecoder = new TextDecoder();
|
|
121
127
|
const stderrDecoder = new TextDecoder();
|
|
128
|
+
let stdoutCapture = '';
|
|
129
|
+
let stderrCapture = '';
|
|
122
130
|
await Promise.all([
|
|
123
131
|
result.stdout.pipeTo(new WritableStream({
|
|
124
132
|
write(chunk) {
|
|
125
133
|
const text = textDecoder.decode(chunk, { stream: true });
|
|
134
|
+
stdoutCapture += text;
|
|
126
135
|
parser.write(text);
|
|
127
136
|
},
|
|
128
137
|
close() {
|
|
@@ -132,6 +141,7 @@ async function runPhpunitTestsForEnvironment(config, environment, hostPhpunitCon
|
|
|
132
141
|
result.stderr.pipeTo(new WritableStream({
|
|
133
142
|
write(chunk) {
|
|
134
143
|
const text = stderrDecoder.decode(chunk, { stream: true });
|
|
144
|
+
stderrCapture += text;
|
|
135
145
|
// Try to parse as TeamCity format first
|
|
136
146
|
parser.write(text);
|
|
137
147
|
// If streaming is disabled, also write non-TeamCity lines to stderr
|
|
@@ -153,20 +163,72 @@ async function runPhpunitTestsForEnvironment(config, environment, hostPhpunitCon
|
|
|
153
163
|
// Close the outer suite that was started earlier
|
|
154
164
|
reporter.onEvent({
|
|
155
165
|
type: "suite:end",
|
|
156
|
-
name:
|
|
166
|
+
name: `${environment.name} - PHPUnit ${testMode} tests`,
|
|
157
167
|
});
|
|
158
168
|
// Signal test run end to finalize timing
|
|
159
169
|
reporter.onEvent({
|
|
160
170
|
type: "run:end",
|
|
161
171
|
});
|
|
162
172
|
const exitCode = await result.exitCode;
|
|
163
|
-
if (exitCode !== 0 && exitCode !== 1 && exitCode !== 2) {
|
|
164
|
-
// Exit code 1 indicates test failures, exit code 2 indicates errors - both are acceptable
|
|
165
|
-
console.error(`PHPUnit exited with code ${exitCode}`);
|
|
166
|
-
return EMPTY_REPORT;
|
|
167
|
-
}
|
|
168
173
|
// Get the report from the streaming reporter
|
|
169
174
|
const report = reporter.getReport();
|
|
175
|
+
// PHPUnit outputs errors to stdout, not stderr, so we need to check both
|
|
176
|
+
const errorOutput = stderrCapture.trim() || stdoutCapture.trim();
|
|
177
|
+
// Check for bad exit codes that indicate fatal errors
|
|
178
|
+
// Exit code 0 = success, 1 = test failures, 2 = errors (all acceptable)
|
|
179
|
+
// Other exit codes (e.g., 127 = command not found, 255 = fatal error) are not acceptable
|
|
180
|
+
if (exitCode !== 0 && exitCode !== 1 && exitCode !== 2) {
|
|
181
|
+
// For bad exit codes without error output or with tests that already ran, return empty report
|
|
182
|
+
if (!errorOutput || report.results.tests.length > 0) {
|
|
183
|
+
console.error('\nPHPUnit tests could not run.');
|
|
184
|
+
// Provide specific guidance based on common exit codes
|
|
185
|
+
if (exitCode === 127) {
|
|
186
|
+
console.error('The PHPUnit executable was not found.');
|
|
187
|
+
console.error('Check that:');
|
|
188
|
+
console.error(' - PHPUnit is installed (run: composer install)');
|
|
189
|
+
console.error(' - The phpunitPath in your config points to the correct location');
|
|
190
|
+
}
|
|
191
|
+
else if (exitCode === 255) {
|
|
192
|
+
console.error('PHPUnit encountered a fatal error.');
|
|
193
|
+
console.error('Check your phpunit.xml configuration and test bootstrap files.');
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
console.error(`Unexpected error occurred (exit code: ${exitCode})`);
|
|
197
|
+
console.error('Check your PHPUnit configuration and ensure all dependencies are installed.');
|
|
198
|
+
}
|
|
199
|
+
return EMPTY_REPORT;
|
|
200
|
+
}
|
|
201
|
+
// Fall through to create synthetic test below
|
|
202
|
+
}
|
|
203
|
+
// Add error output to CTRF results if present and no tests ran
|
|
204
|
+
// This handles both bad exit codes (from above) and acceptable exit codes with errors
|
|
205
|
+
if (errorOutput && report.results.tests.length === 0) {
|
|
206
|
+
// Check if this is a "no tests executed" scenario vs an actual error
|
|
207
|
+
// PHPUnit outputs "No tests executed!" when no tests match the filter
|
|
208
|
+
const noTestsPattern = /No tests executed!?/i;
|
|
209
|
+
const isNoTestsExecuted = noTestsPattern.test(errorOutput) && exitCode === 0;
|
|
210
|
+
if (false === isNoTestsExecuted) {
|
|
211
|
+
// Bootstrap failure - create a synthetic test with the error
|
|
212
|
+
report.results.tests.push({
|
|
213
|
+
name: 'PHPUnit Bootstrap',
|
|
214
|
+
status: 'failed',
|
|
215
|
+
duration: 0,
|
|
216
|
+
message: 'Bootstrap failed - see trace for details',
|
|
217
|
+
trace: errorOutput,
|
|
218
|
+
});
|
|
219
|
+
report.results.summary.tests = 1;
|
|
220
|
+
report.results.summary.failed = 1;
|
|
221
|
+
}
|
|
222
|
+
// If no tests executed (isNoTestsExecuted === true), return empty report
|
|
223
|
+
// The runner will handle this based on passWithNoTests option
|
|
224
|
+
}
|
|
225
|
+
else if (stderrCapture.trim()) {
|
|
226
|
+
// Tests ran but there's stderr - add it to extra field
|
|
227
|
+
report.results.extra = {
|
|
228
|
+
...report.results.extra,
|
|
229
|
+
stderr: stderrCapture.split('\n'),
|
|
230
|
+
};
|
|
231
|
+
}
|
|
170
232
|
// Update tool name with environment
|
|
171
233
|
report.results.tool.name = `wp-tester-phpunit (${environment.name})`;
|
|
172
234
|
return report;
|
|
@@ -190,12 +252,34 @@ async function runPhpunitTestsForEnvironment(config, environment, hostPhpunitCon
|
|
|
190
252
|
/**
|
|
191
253
|
* Run PHPUnit tests in WordPress Playground environment
|
|
192
254
|
*
|
|
193
|
-
* @param config -
|
|
255
|
+
* @param config - Resolved test configuration
|
|
256
|
+
* @param phpunitArgsOrOptions - Additional PHPUnit arguments or options object
|
|
194
257
|
* @returns CTRF report with test results
|
|
195
258
|
*/
|
|
196
|
-
export async function runPhpunitTests(config) {
|
|
197
|
-
//
|
|
198
|
-
const
|
|
259
|
+
export async function runPhpunitTests(config, phpunitArgsOrOptions) {
|
|
260
|
+
// Support both old signature (string[]) and new signature (options object)
|
|
261
|
+
const options = Array.isArray(phpunitArgsOrOptions)
|
|
262
|
+
? { phpunitArgs: phpunitArgsOrOptions }
|
|
263
|
+
: phpunitArgsOrOptions || {};
|
|
264
|
+
const { phpunitArgs } = options;
|
|
265
|
+
// Merge additional PHPUnit args if provided
|
|
266
|
+
let resolvedConfig = { ...config };
|
|
267
|
+
if (phpunitArgs && phpunitArgs.length > 0) {
|
|
268
|
+
const configArgs = resolvedConfig.tests.phpunit?.phpunitArgs || [];
|
|
269
|
+
const mergedArgs = [...configArgs, ...phpunitArgs];
|
|
270
|
+
resolvedConfig = {
|
|
271
|
+
...resolvedConfig,
|
|
272
|
+
tests: {
|
|
273
|
+
...resolvedConfig.tests,
|
|
274
|
+
phpunit: resolvedConfig.tests.phpunit
|
|
275
|
+
? {
|
|
276
|
+
...resolvedConfig.tests.phpunit,
|
|
277
|
+
phpunitArgs: mergedArgs,
|
|
278
|
+
}
|
|
279
|
+
: undefined,
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
}
|
|
199
283
|
// Check if PHPUnit tests are configured
|
|
200
284
|
if (!shouldRunPhpunitTests(resolvedConfig)) {
|
|
201
285
|
return Promise.resolve(EMPTY_REPORT);
|
|
@@ -210,10 +294,12 @@ export async function runPhpunitTests(config) {
|
|
|
210
294
|
console.error(`PHPUnit config file not found: ${hostPhpunitConfigPath}`);
|
|
211
295
|
return Promise.resolve(EMPTY_REPORT);
|
|
212
296
|
}
|
|
213
|
-
// Run tests for all environments
|
|
297
|
+
// Run tests for all enabled environments (skip those marked with skip: true)
|
|
214
298
|
const reports = [];
|
|
215
|
-
|
|
299
|
+
const enabledEnvironments = resolvedConfig.environments.filter((env) => !env.skip);
|
|
300
|
+
for (const environment of enabledEnvironments) {
|
|
216
301
|
const report = await runPhpunitTestsForEnvironment(resolvedConfig, environment, hostPhpunitConfigPath);
|
|
302
|
+
// Include report only if it has tests
|
|
217
303
|
if (report.results.summary.tests > 0) {
|
|
218
304
|
reports.push(report);
|
|
219
305
|
}
|
|
@@ -229,4 +315,83 @@ export async function runPhpunitTests(config) {
|
|
|
229
315
|
// Import mergeReports for multiple environments
|
|
230
316
|
return mergeReports(reports);
|
|
231
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* PHPUnit flags that are boolean (do not take a value).
|
|
320
|
+
* If a flag is NOT in this list, we assume it takes a value,
|
|
321
|
+
* and therefore the next argument should NOT be resolved as a path.
|
|
322
|
+
*/
|
|
323
|
+
const booleanFlags = new Set([
|
|
324
|
+
'--teamcity', '--debug', '--verbose', '--testdox',
|
|
325
|
+
'--stderr', '--stop-on-error', '--stop-on-failure', '--stop-on-warning',
|
|
326
|
+
'--stop-on-defect', '--stop-on-risky', '--stop-on-skipped', '--stop-on-incomplete',
|
|
327
|
+
'--stop-on-deprecation', '--stop-on-notice', // Added in recent versions
|
|
328
|
+
'--fail-on-warning', '--fail-on-risky', '--fail-on-incomplete', '--fail-on-skipped',
|
|
329
|
+
'--fail-on-deprecation', '--fail-on-notice', // Added in recent versions
|
|
330
|
+
'--strict-coverage', '--strict-global-state', '--disallow-test-output',
|
|
331
|
+
'--disallow-resource-usage', '--enforce-time-limit',
|
|
332
|
+
'--process-isolation', '--no-globals-backup', '--static-backup',
|
|
333
|
+
'--no-configuration', '--no-coverage', '--no-logging', '--no-interaction',
|
|
334
|
+
'--no-extensions', '--no-output', '--dont-report-useless-tests',
|
|
335
|
+
'--no-progress', // Added
|
|
336
|
+
'--display-deprecations', '--display-errors', '--display-incomplete', // Added
|
|
337
|
+
'--display-notices', '--display-skipped', '--display-warnings', // Added
|
|
338
|
+
'--strict',
|
|
339
|
+
'--help', '--version',
|
|
340
|
+
'--list-groups', '--list-suites', '--list-tests', '--list-tests-xml',
|
|
341
|
+
// Colors often handled as boolean in simple usage
|
|
342
|
+
]);
|
|
343
|
+
/**
|
|
344
|
+
* Resolve PHPUnit arguments to map host paths to VFS paths
|
|
345
|
+
*
|
|
346
|
+
* @param args - Original arguments
|
|
347
|
+
* @param config - Resolved configuration
|
|
348
|
+
* @param playground - Playground client for checking VFS file existence
|
|
349
|
+
* @returns Resolved arguments
|
|
350
|
+
*/
|
|
351
|
+
export async function resolvePhpunitArgs(args, config, playground) {
|
|
352
|
+
const resolvedArgs = [];
|
|
353
|
+
for (let i = 0; i < args.length; i++) {
|
|
354
|
+
const arg = args[i];
|
|
355
|
+
// Don't resolve flags
|
|
356
|
+
if (arg.startsWith('-')) {
|
|
357
|
+
resolvedArgs.push(arg);
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
// Check if the previous argument was a flag that takes a value
|
|
361
|
+
const prevArg = args[i - 1];
|
|
362
|
+
if (prevArg?.startsWith('-') && !prevArg.includes('=')) {
|
|
363
|
+
// If the previous flag is NOT a known boolean flag, assume it takes a value
|
|
364
|
+
const flagName = prevArg.split('=')[0];
|
|
365
|
+
if (!booleanFlags.has(flagName)) {
|
|
366
|
+
resolvedArgs.push(arg); // This is the flag's value, not a path
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
// Resolve arguments that look like file/directory paths
|
|
371
|
+
const looksLikePath = arg.includes('/') ||
|
|
372
|
+
arg.endsWith('.php') ||
|
|
373
|
+
arg === 'tests' || arg === 'test';
|
|
374
|
+
if (looksLikePath) {
|
|
375
|
+
const absoluteHostPath = resolveAbsolute(arg, config.projectHostPath);
|
|
376
|
+
const vfsPath = hostToVfs(absoluteHostPath, config);
|
|
377
|
+
try {
|
|
378
|
+
// Validate that the file actually exists in the VFS
|
|
379
|
+
const exists = await playground.fileExists(vfsPath);
|
|
380
|
+
if (exists) {
|
|
381
|
+
resolvedArgs.push(vfsPath);
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
// Ignore validation errors and fallback to original arg (or should we?)
|
|
387
|
+
// If file check fails, it's safer to probably not resolve it if we are strict,
|
|
388
|
+
// but existing behavior was "looksLikePath -> resolve".
|
|
389
|
+
// If we add this check, we might break things that "look like path" but aren't files YET?
|
|
390
|
+
// But for running tests, the files must exist.
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
resolvedArgs.push(arg);
|
|
394
|
+
}
|
|
395
|
+
return resolvedArgs;
|
|
396
|
+
}
|
|
232
397
|
//# sourceMappingURL=runner.js.map
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|