-
-
Notifications
You must be signed in to change notification settings - Fork 35.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
E2E tests broken. #28296
Comments
BTW: This is one of the first PRs with broken E2E tests: #28226 |
#28229 last week
|
I'll revert #28229 and see if it helps. |
try revert #28175 ? |
Done! But I believe existing PRs must rebase otherwise they don't get the updated configuration file. |
still no luck https://github.com/mrdoob/three.js/actions/runs/8972633808/job/24641039564?pr=28287 :( maybe related: actions/upload-artifact#506 |
So it seems we have to apply a migration task so v4 of |
Um, it seems the upload works again but I can't regenerate the example screenshots correctly. I've tried it on two systems (macOS and Windows) but many examples still fail during the CI. Because of the migration to @ycw Would you mind helping and file a PR like #28301? Meaning run |
all or some? there're only 70 images in #28301, what are they? |
Try updating all by simply running |
ok, lets do it |
done. |
I notice that all animation-related screenshots made in #28306 lags behind the old ones by few frames and this one is totally blank: examples/screenshots/webgl_animation_skinning_additive_blending.jpg 🤔 |
see #28306 (comment). When using If the timing of the tests would be 100% deterministic, screenshot generation should always produce the same result (maybe with very minor diff). |
It's even worse. |
@RemusMar Can you try to compute a delta time not via let prevTime = 0;
function animate( time ) {
const delta = ( time - prevTime ) / 1000;
prevTime = time; Would this solve the problem on your side? |
Michael, |
To summarize: |
Expected because first animate frame is ... scheduled ... by setAnimationLoop(), whereas animate() renders first animation frame immediately, i.e. after merging PRs that replace animate() by setAnimationLoop(), screenshots should all be re-generated. |
That's true. |
Instead of directly rendering the first frame, the engine let the browser decide when to schedule the first one. If apps need a different behavior, they can always call their animate function right away after the init routine. That would be the workaround you are asking for. |
In my opinion the current logic for |
Please do not hijack this issue to discuss the logic of Besides, using |
It's much more than that Michael. |
This is easy to do by replacing |
@Mugen87 I think it may be best to revert all the |
And what do we do when we start migrating the examples to To me, letting the renderer handle the animation loop is better than what we had before. It opens up interesting options like automatic time computations or node related internal update mechanism. We essentially loose that if we ask the app to manage the animation loop again. Since users often copy/paste example code, it would be good to promote If we can't fix the E2E tests, would it also be an option to remove E2E testing from the CI? The implementation of E2E testing is complex and the usage often fragile (false-positives). Notice the large exception list of demos that have never worked. That said, we could still use a strip-down version of the logic to generate screenshots for the website. |
In any event, I've filed #28322 to see if it solves the E2E issues. |
Description
Since about two weeks the E2E testing as a part of the CI is broken. Jobs fails with the following error:
AFAIK, we have not recently changed the CI settings apart from the updates renovate performs.
The text was updated successfully, but these errors were encountered: