@wp-tester/phpunit 0.1.0 → 0.1.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.
@@ -248,7 +248,7 @@ $table_prefix = 'wptests_';
248
248
  // Use a generic domain that tests can override via update_option('home')
249
249
  // Don't use Playground's actual domain here as it prevents tests from
250
250
  // dynamically changing the home URL for mock HTTP requests
251
- define( 'WP_TESTS_DOMAIN', 'example.org' );
251
+ // define( 'WP_TESTS_DOMAIN', 'example.org' ); # The domain is defined after Playground starts to correctly set the port
252
252
  define( 'WP_TESTS_EMAIL', 'admin@example.org' );
253
253
  define( 'WP_TESTS_TITLE', 'Test Blog' );
254
254
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wp-tester/phpunit",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "PHPUnit test runner for WordPress projects",
5
5
  "type": "module",
6
6
  "private": false,
@@ -27,9 +27,9 @@
27
27
  "type-check": "tsc --noEmit"
28
28
  },
29
29
  "dependencies": {
30
- "@wp-tester/config": "^0.1.0",
31
- "@wp-tester/results": "^0.1.0",
32
- "@wp-tester/runtime": "^0.1.0",
30
+ "@wp-tester/config": "^0.1.2",
31
+ "@wp-tester/results": "^0.1.2",
32
+ "@wp-tester/runtime": "^0.1.2",
33
33
  "xml2js": "^0.6.2",
34
34
  "yauzl": "*"
35
35
  },
@@ -1,11 +0,0 @@
1
- import { type Report } from "@wp-tester/results";
2
- /**
3
- * Parse JUnit XML output to CTRF format
4
- * PHPUnit outputs test results in JUnit XML format
5
- *
6
- * @param xmlOutput - JUnit XML output string
7
- * @param environmentName - Name of the test environment
8
- * @returns CTRF Report
9
- */
10
- export declare function parseJUnitXml(xmlOutput: string, environmentName?: string): Promise<Report>;
11
- //# sourceMappingURL=junit-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"junit-parser.d.ts","sourceRoot":"","sources":["../src/junit-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAmB,MAAM,oBAAoB,CAAC;AA4ChF;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAwHjB"}
@@ -1,114 +0,0 @@
1
- import { parseStringPromise } from "xml2js";
2
- import { EMPTY_REPORT } from "@wp-tester/results";
3
- /**
4
- * Parse JUnit XML output to CTRF format
5
- * PHPUnit outputs test results in JUnit XML format
6
- *
7
- * @param xmlOutput - JUnit XML output string
8
- * @param environmentName - Name of the test environment
9
- * @returns CTRF Report
10
- */
11
- export async function parseJUnitXml(xmlOutput, environmentName) {
12
- const startTime = Date.now();
13
- try {
14
- const parsed = (await parseStringPromise(xmlOutput));
15
- // Handle both single testsuite and testsuites wrapper
16
- const testsuites = parsed.testsuites?.testsuite ||
17
- (parsed.testsuite ? [parsed.testsuite] : []);
18
- if (testsuites.length === 0) {
19
- return EMPTY_REPORT;
20
- }
21
- // Collect all tests from all test suites (recursively)
22
- const tests = [];
23
- // Recursive function to extract testcases from nested testsuites
24
- function collectTestCases(suite) {
25
- // Process testcases in this suite
26
- const testcases = suite.testcase || [];
27
- for (const testcase of testcases) {
28
- const attrs = testcase.$ || {};
29
- const testName = attrs.name || "Unknown test";
30
- const className = attrs.class || attrs.classname || "";
31
- const fullName = className ? `${className}::${testName}` : testName;
32
- const duration = attrs.time ? parseFloat(attrs.time) * 1000 : 0; // Convert to ms
33
- let status = "passed";
34
- let message;
35
- let trace;
36
- // Check for failure
37
- if (testcase.failure && testcase.failure.length > 0) {
38
- status = "failed";
39
- const failure = testcase.failure[0];
40
- message = failure.$?.message || failure.$?.type || "Test failed";
41
- trace = failure._ || "";
42
- }
43
- // Check for error
44
- else if (testcase.error && testcase.error.length > 0) {
45
- status = "failed";
46
- const error = testcase.error[0];
47
- message = error.$?.message || error.$?.type || "Test error";
48
- trace = error._ || "";
49
- }
50
- // Check for skipped
51
- else if (testcase.skipped && testcase.skipped.length > 0) {
52
- status = "skipped";
53
- const skipped = testcase.skipped[0];
54
- message = skipped.$?.message || "Test skipped";
55
- }
56
- tests.push({
57
- name: fullName,
58
- status,
59
- duration,
60
- ...(message && { message }),
61
- ...(trace && { trace }),
62
- });
63
- }
64
- // Recursively process nested testsuites
65
- const nestedSuites = suite.testsuite || [];
66
- for (const nestedSuite of nestedSuites) {
67
- collectTestCases(nestedSuite);
68
- }
69
- }
70
- // Collect test cases from all top-level testsuites
71
- for (const suite of testsuites) {
72
- collectTestCases(suite);
73
- }
74
- // Calculate summary
75
- const stopTime = Date.now();
76
- const passed = tests.filter((t) => t.status === "passed").length;
77
- const failed = tests.filter((t) => t.status === "failed").length;
78
- const skipped = tests.filter((t) => t.status === "skipped").length;
79
- const pending = tests.filter((t) => t.status === "pending").length;
80
- const toolName = environmentName
81
- ? `wp-tester-phpunit (${environmentName})`
82
- : "wp-tester-phpunit";
83
- return {
84
- ...EMPTY_REPORT,
85
- results: {
86
- summary: {
87
- tests: tests.length,
88
- passed,
89
- failed,
90
- skipped,
91
- pending,
92
- other: 0,
93
- start: startTime,
94
- stop: stopTime,
95
- },
96
- tool: {
97
- name: toolName,
98
- },
99
- tests: tests.map((test) => ({
100
- name: test.name,
101
- status: test.status,
102
- duration: test.duration,
103
- ...(test.message && { message: test.message }),
104
- ...(test.trace && { trace: test.trace }),
105
- })),
106
- },
107
- };
108
- }
109
- catch (error) {
110
- console.error("Error parsing JUnit XML:", error);
111
- return EMPTY_REPORT;
112
- }
113
- }
114
- //# sourceMappingURL=junit-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"junit-parser.js","sourceRoot":"","sources":["../src/junit-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AA4ChF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,eAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAa,CAAC;QAEjE,sDAAsD;QACtD,MAAM,UAAU,GAAqB,MAAM,CAAC,UAAU,EAAE,SAAS;YAC/D,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,uDAAuD;QACvD,MAAM,KAAK,GAMN,EAAE,CAAC;QAER,iEAAiE;QACjE,SAAS,gBAAgB,CAAC,KAAqB;YAC7C,kCAAkC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,cAAc,CAAC;gBAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;gBAEjF,IAAI,MAAM,GAAe,QAAQ,CAAC;gBAClC,IAAI,OAA2B,CAAC;gBAChC,IAAI,KAAyB,CAAC;gBAE9B,oBAAoB;gBACpB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpD,MAAM,GAAG,QAAQ,CAAC;oBAClB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,IAAI,aAAa,CAAC;oBACjE,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,CAAC;gBACD,kBAAkB;qBACb,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,GAAG,QAAQ,CAAC;oBAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,IAAI,YAAY,CAAC;oBAC5D,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;gBACD,oBAAoB;qBACf,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzD,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,cAAc,CAAC;gBACjD,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,QAAQ;oBACd,MAAM;oBACN,QAAQ;oBACR,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,wCAAwC;YACxC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;YAC3C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACjE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAEnE,MAAM,QAAQ,GAAG,eAAe;YAC9B,CAAC,CAAC,sBAAsB,eAAe,GAAG;YAC1C,CAAC,CAAC,mBAAmB,CAAC;QAExB,OAAO;YACL,GAAG,YAAY;YACf,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,MAAM;oBACnB,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,OAAO;oBACP,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,QAAQ;iBACf;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;iBACf;gBACD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC9C,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;iBACzC,CAAC,CAAC;aACJ;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC"}