I'm having very strange recurring issues connecting to a locally served vuejs application (nodejs). localhost:8080 successfully loads in a local browser, but regardless of configuration testcafe returns: Failed to find a DNS-record for the resource at "http://localhost:3000/".
I emptied .testcaferc.json and created the following Minimum Working Example:
testcafe "chrome" tests/testcafe_debug.test.js --app "npm run serve" --app-init-delay 1 -S -s
tests/testcafe_debug.test.js:
fixture `Fixture`
.page('http://localhost:8080/login');
test('test', async t => {
await t
.click('body')
.expect(Selector('div p a').text).eql('Register Here');
});
This is actually the second time I've seen the problem. Visiting a friend an on a new network, connections failed until I added --proxyBypass localhost to the test run. This fixed the issue for the moment, but now I'm having the same errors a few weeks later.
Things I've looked into:
--hostname localhost has no effectIn your TestCafe launch command, you allow just one millisecond for the application to load (--app-init-delay 1). It looks like TestCafe requests the page before the server is ready. Try to increase this delay (specified in milliseconds) so that it's enough for your app server to start up and serve the tested app.
The following example specifies a ten-second delay:
testcafe "chrome" tests/testcafe_debug.test.js --app "npm run serve" --app-init-delay 10000 -S -s
UPD: looks similar to https://github.com/DevExpress/testcafe/issues/6844
I had the same problem because I changed node versions in between runs.
Thanks to @vasily.strelyaev's comment I found the solution.