You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/changelog.md
+122-9Lines changed: 122 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,128 @@ layout: Section
7
7
8
8
# Releases
9
9
10
+
## 3.7.4
11
+
12
+
❤️ Thanks all to those who contributed to make this release! ❤️
13
+
14
+
🛩️ _Features_
15
+
16
+
-**Test Suite Shuffling**: Randomize test execution order to discover test dependencies and improve test isolation ([#5051](https://github.com/codeceptjs/CodeceptJS/issues/5051)) - by **[NivYarmus](https://github.com/NivYarmus)**
17
+
18
+
```bash
19
+
# Shuffle tests to find order-dependent failures using lodash.shuffle algorithm
20
+
npx codeceptjs run --shuffle
21
+
22
+
# Combined with grep and other options
23
+
npx codeceptjs run --shuffle --grep "@smoke" --steps
24
+
```
25
+
26
+
-**Enhanced Interactive Debugging**: Better logging for `I.grab*` methods in live interactive mode for clearer debugging output ([#4986](https://github.com/codeceptjs/CodeceptJS/issues/4986)) - by **[owenizedd](https://github.com/owenizedd)**
27
+
28
+
```js
29
+
// Interactive pause() now shows detailed grab results with JSON formatting
30
+
I.amOnPage('/checkout')
31
+
pause() // Interactive shell started
32
+
>I.grabTextFrom('.price')
33
+
Result $res="Grabbed text: $29.99"// Pretty-printed JSON output
-**Playwright Session Traces**: Fixed trace file naming convention and improved error handling for multi-session test scenarios ([#5073](https://github.com/codeceptjs/CodeceptJS/issues/5073)) - by **[julien-ft-64](https://github.com/julien-ft-64)****[kobenguyent](https://github.com/kobenguyent)**
_Trace files use UUID prefixes with `sessionName_testTitle.status.zip` format_
49
+
50
+
-**Worker Data Injection**: Resolved proxy object serialization preventing data sharing between parallel test workers ([#5072](https://github.com/codeceptjs/CodeceptJS/issues/5072)) - by **[kobenguyent](https://github.com/kobenguyent)**
51
+
52
+
```js
53
+
// Fixed: Complex objects can now be properly shared and injected between workers
console.log(testData.userData.preferences.theme) // 'dark' - deep nesting works
67
+
console.log(Object.keys(testData)) // ['userData', 'apiConfig'] - key enumeration works
68
+
69
+
// Dynamic sharing during test execution:
70
+
share({ newData:'shared across workers' })
71
+
```
72
+
73
+
-**Hook Exit Codes**: Fixed improper exit codes when test hooks fail, ensuring CI/CD pipelines properly detect failures ([#5058](https://github.com/codeceptjs/CodeceptJS/issues/5058)) - by **[kobenguyent](https://github.com/kobenguyent)**
74
+
75
+
```bash
76
+
# Before: Exit code 0 even when beforeEach/afterEach failed
77
+
# After: Exit code 1 when any hook fails, properly failing CI builds
78
+
```
79
+
80
+
-**TypeScript Effects Support**: Added complete TypeScript definitions for effects functionality ([#5027](https://github.com/codeceptjs/CodeceptJS/issues/5027)) - by **[kobenguyent](https://github.com/kobenguyent)**
81
+
82
+
```typescript
83
+
// Import effects with full TypeScript type definitions
84
+
import { tryTo, retryTo, within } from'codeceptjs/effects'
85
+
86
+
// tryTo returns Promise<boolean> for conditional actions
87
+
const success:boolean=awaittryTo(async () => {
88
+
awaitI.see('Cookie banner')
89
+
awaitI.click('Accept')
90
+
})
91
+
92
+
// retryTo with typed parameters for reliability
93
+
awaitretryTo(() => {
94
+
I.click('Submit')
95
+
I.see('Success')
96
+
}, 3) // retry up to 3 times
97
+
```
98
+
99
+
_Note: Replaces deprecated global plugins - import from 'codeceptjs/effects' module_
100
+
101
+
-**Mochawesome Screenshot Uniqueness**: Fixed screenshot naming to prevent test failures from being overwritten when multiple tests run at the same time ([#4959](https://github.com/codeceptjs/CodeceptJS/issues/4959)) - by **[Lando1n](https://github.com/Lando1n)**
102
+
103
+
```js
104
+
// Problem: When tests run in parallel, screenshots had identical names
105
+
// This caused later test screenshots to overwrite earlier ones
106
+
107
+
// Before: All failed tests saved as "screenshot.png"
108
+
// Result: Only the last failure screenshot was kept
109
+
110
+
// After: Each screenshot gets a unique name with timestamp
111
+
// Examples:
112
+
// - "login_test_1645123456.failed.png"
113
+
// - "checkout_test_1645123789.failed.png"
114
+
// - "profile_test_1645124012.failed.png"
115
+
116
+
// Configuration in codecept.conf.js:
117
+
helpers: {
118
+
Mochawesome: {
119
+
uniqueScreenshotNames:true// Enable unique naming
120
+
}
121
+
}
122
+
```
123
+
124
+
_Ensures every failed test keeps its own screenshot for easier debugging_
125
+
126
+
📖 _Documentation_
127
+
128
+
- Fixed Docker build issues and improved container deployment process ([#4980](https://github.com/codeceptjs/CodeceptJS/issues/4980)) - by **[thomashohn](https://github.com/thomashohn)**
129
+
- Updated dependency versions to maintain security and compatibility ([#4957](https://github.com/codeceptjs/CodeceptJS/issues/4957), [#4950](https://github.com/codeceptjs/CodeceptJS/issues/4950), [#4943](https://github.com/codeceptjs/CodeceptJS/issues/4943)) - by **[thomashohn](https://github.com/thomashohn)**
130
+
- Fixed automatic documentation generation system for custom plugins ([#4973](https://github.com/codeceptjs/CodeceptJS/issues/4973)) - by **[Lando1n](https://github.com/Lando1n)**
131
+
10
132
## 3.7.3
11
133
12
134
❤️ Thanks all to those who contributed to make this release! ❤️
@@ -490,7 +612,6 @@ I.flushSoftAssertions() // Throws an error if any soft assertions have failed. T
490
612
```
491
613
492
614
- feat(cli): print failed hooks ([#4476](https://github.com/codeceptjs/CodeceptJS/issues/4476)) - by **[kobenguyent](https://github.com/kobenguyent)**
493
-
494
615
- run command
495
616

- feat(puppeteer): network traffic manipulation. See [#4263](https://github.com/codeceptjs/CodeceptJS/issues/4263) by **[KobeNguyenT](https://github.com/KobeNguyenT)**
764
-
765
884
- `startRecordingTraffic`
766
885
- `grabRecordedNetworkTraffics`
767
886
- `flushNetworkTraffics`
@@ -2099,7 +2218,6 @@ await I.seeTraffic({
2099
2218
2100
2219
-**🪄 [AI Powered Test Automation](/ai)** - use OpenAI as a copilot for test automation.[#3713](https://github.com/codeceptjs/CodeceptJS/issues/3713) By **[davertmik](https://github.com/davertmik)**
0 commit comments