regression of video behaviour
What is your Scenario?
this is a continuance of https://github.com/DevExpress/testcafe/issues/7189 we have tried 1.20.1-rc2 and while we are seeing more of the videos that we were in 1.20 we are still loosing the essential ends of videos
What is the Current behavior?
WHen 40 tests (run times from a few seconds to a couple of minutes) are run concurrently (3 or 4 at once) many loose the endings on the video recordings.
What is the Expected behavior?
all videos are complete (as in 1.18 and 1.19)
What is your public website URL? (or attach your complete example)
not relevant
What is your TestCafe test code?
irrelevant (I can provide zipped comparative videos if required)
Your complete configuration file
we have an extensive set of config.js files
Your complete test report
report irrelevant - tests pass correctly
Screenshots
No response
Steps to Reproduce
- gather a reasonably sized suite of tests which run for a variety of times, set up video recording, run against headless chrome/chromium
- run with concurrency of 3 or 4
- watch videos - ones from the middle onwards - especially longer running ones are cut short
TestCafe version
1.20.1-rc2
Node.js version
16.14.2
Command-line arguments
irrelevant - run by internal script
Browser name(s) and version(s)
Version 104.0.5112.81 (Official Build) (64-bit)
Platform(s) and version(s)
windows 11 (1.20 was also failing on alpine)
Other
https://github.com/DevExpress/testcafe/issues/7189
Hi @zoe-jobson-IL
Thank you for the shared information. I've reproduced the issue with the following example:
testcafe chrome test.js --videos --concurrency 4
import { ClientFunction, t } from 'testcafe';
fixture ('Fixture');
const updateContent = ClientFunction((testNumber, stageNumber) => {
var h1 = document.createElement('h1');
h1.textContent = 'Test ' + testNumber + ': ' + stageNumber;
document.body.appendChild(h1);
});
async function testBody (testNumber) {
await updateContent(testNumber, '1');
await t.wait(1000 * testNumber);
await updateContent(testNumber, '2');
await t.wait(1000);
await updateContent(testNumber, '3');
await t.wait(1000);
}
test('test1', async t => {
await testBody(1);
});
test('test2', async t => {
await testBody(2);
});
test('test3', async t => {
await testBody(3);
});
test('test4', async t => {
await testBody(4);
});
test('test5', async t => {
await testBody(5);
});
test('test6', async t => {
await testBody(6);
});
test('test7', async t => {
await testBody(7);
});
test('test8', async t => {
await testBody(8);
});
test('test9', async t => {
await testBody(9);
});
test('test10', async t => {
await testBody(10);
});
Release v2.0.1-alpha.1 addresses this.