Describe the bug
A clear and concise description of what the bug is.
ci可以跑通,但我windows本地如何都跑不通。
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯
FAIL @galacean/engine-tests (chromium) src/core/input/InputManager.test.ts > InputManager > blur and focus
AssertionError: expected false to equal true
- Expected
+ Received
- true
+ false
❯ src/core/input/InputManager.test.ts:216:49
214| target.dispatchEvent(generateKeyboardEvent("keydown", "KeyA"));
215| engine.update();
216| expect(inputManager.isKeyDown(Keys.KeyA)).to.eq(true);
| ^
217| target.dispatchEvent(new Event("blur"));
218| expect(inputManager.isKeyDown()).to.eq(false);
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯
FAIL @galacean/engine-tests (chromium) src/core/input/InputManager.test.ts > InputManager > change listener target
AssertionError: expected false to equal true
- Expected
+ Received
- true
+ false
❯ src/core/input/InputManager.test.ts:236:40
234| window.dispatchEvent(generateKeyboardEvent("keydown", "KeyA"));
235| engine.update();
236| expect(inputManager.isKeyDown()).to.eq(true);
| ^
237|
238| window.dispatchEvent(generateWheelEvent(1, 2, 3));
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯
FAIL @galacean/engine-tests (chromium) src/core/2d/text/TextUtils.test.ts > TextUtils > measureTextWithWrap
AssertionError: expected 26 to equal 27
- Expected
+ Received
- 27
+ 26
❯ src/core/2d/text/TextUtils.test.ts:170:36
168| "。"
169| ]);
170| expect(result.lineHeight).to.be.equal(27);
| ^
171| textRendererTruncate.text = text2;
172| result = TextUtils.measureTextWithWrap(
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/4]⎯
FAIL @galacean/engine-tests (chromium) src/core/2d/text/TextUtils.test.ts > TextUtils > measureTextWithoutWrap
AssertionError: expected 26 to equal 27
- Expected
+ Received
- 27
+ 26
❯ src/core/2d/text/TextUtils.test.ts:412:36
410| expect(result.lines).to.be.deep.equal(["趚今天天气很好,阳光明媚。我 在公园里 漫步。"]);
411| expect(result.lineWidths).to.be.deep.equal([518]);
412| expect(result.lineHeight).to.be.equal(27);
| ^
413| textRendererTruncate.text = text2;
414| result = TextUtils.measureTextWithoutWrap(
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/4]⎯
Test Files 2 failed | 109 passed (111)
Tests 4 failed | 1444 passed (1448)
Start at 13:40:16
Duration 23.62s
Desktop (please complete the following information)
System:
OS: Windows 11 10.0.26200
CPU: (16) x64 AMD Ryzen 7 4800H with Radeon Graphics
Memory: 7.03 GB / 15.42 GB
Binaries:
Node: 22.22.3 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.22 - C:\Users\24306\AppData\Roaming\npm\yarn.CMD
npm: 11.17.0 - C:\Program Files\nodejs\npm.CMD
pnpm: 9.3.0 - C:\Users\24306\AppData\Roaming\npm\pnpm.CMD
Managers:
pip3: 26.0.1 - ~\AppData\Local\Programs\Python\Python314\Scripts\pip3.EXE
Utilities:
Git: 2.53.0. - C:\Program Files\Git\cmd\git.EXE
Git LFS: 3.7.1 - C:\Program Files\Git\cmd\git-lfs.EXE
Curl: 8.19.0 - C:\WINDOWS\system32\curl.EXE
SDKs:
Windows SDK:
AllowDevelopmentWithoutDevLicense: Enabled
Versions: 10.0.26100.0
IDEs:
Android Studio: AI-253.29346.138.2531.14876573
VSCode: 1.124.2 - C:\Users\24306\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD
Languages:
Python: 3.14.3 - C:\Users\24306\AppData\Local\Programs\Python\Python314\python.EXE
Browsers:
Edge: Chromium (149.0.4022.69)
Additional context
Add any other context about the problem here.
这样修改后可以通过input测试,但由于缺少更详细的测试,我不确定这样修改之后是否符合你们的行为预期。
关于textUtils问题,_measureFontOrChar 的核心逻辑似乎是在离屏 Canvas 上真实渲染字体,然后用 getImageData 逐像素扫描,找到第一个非透明像素和最后一个非透明像素。虽然统一使用了从系统获取的Arial字体,但是不同操作系统/浏览器上的渲染结果可能不同。这可能是导致这个问题的原因,可以尝试在测试中统一使用导入的ttf字体。

Describe the bug
A clear and concise description of what the bug is.
Desktop (please complete the following information)
System:
OS: Windows 11 10.0.26200
CPU: (16) x64 AMD Ryzen 7 4800H with Radeon Graphics
Memory: 7.03 GB / 15.42 GB
Binaries:
Node: 22.22.3 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.22 - C:\Users\24306\AppData\Roaming\npm\yarn.CMD
npm: 11.17.0 - C:\Program Files\nodejs\npm.CMD
pnpm: 9.3.0 - C:\Users\24306\AppData\Roaming\npm\pnpm.CMD
Managers:
pip3: 26.0.1 - ~\AppData\Local\Programs\Python\Python314\Scripts\pip3.EXE
Utilities:
Git: 2.53.0. - C:\Program Files\Git\cmd\git.EXE
Git LFS: 3.7.1 - C:\Program Files\Git\cmd\git-lfs.EXE
Curl: 8.19.0 - C:\WINDOWS\system32\curl.EXE
SDKs:
Windows SDK:
AllowDevelopmentWithoutDevLicense: Enabled
Versions: 10.0.26100.0
IDEs:
Android Studio: AI-253.29346.138.2531.14876573
VSCode: 1.124.2 - C:\Users\24306\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD
Languages:
Python: 3.14.3 - C:\Users\24306\AppData\Local\Programs\Python\Python314\python.EXE
Browsers:
Edge: Chromium (149.0.4022.69)
Additional context
Add any other context about the problem here.