Skip to main content

Limitations for TestCafe

Firefox on macOS 15 (Sequoia)

Firefox is not supported on macOS 15 (Sequoia) due to a known macOS firewall bug that blocks Firefox network connections. Use macOS 14 for Firefox testing on ARM.

Special Characters in Test Names

Test names may only contain the following characters:

  • Letters: a-z, A-Z
  • Digits: 0-9
  • Space
  • Basic punctuation: `- _ . , ( ) : @ + / ' % \ = ? < > ``

Test names containing characters outside this set (for example, * " | & ; # ! ~ or symbols like ®) will be rejected with a validation error. Rename your tests to use only the allowed characters listed above.

Chrome 130+

TestCafe 3.6.2 and lower do not work with Chrome 130+. Disable native automation as a workaround.

Chrome/Edge + Sauce Connect

When using Sauce-Connect, the browsers Chrome and Edge will not make use of the tunnel when browsing a website. They will behave as if there is no tunnel defined.

TestCafe Native Automation + Chrome + Sauce Connect

If your tests are issuing TestCafe HTTP requests and require a Sauce Connect tunnel, you will need to either set the proxy manually or disable TestCafe's Native Automation.

Disable Native Automation

This is the recommended approach, which poses less of a hassle. Disable Native Automation in your .testcaferc.js:

module.exports = {
disableNativeAutomation: true,
};

and then ensure that our runner picks up the TestCafe config file by also specifying it in the saucectl yaml config:

testcafe:
version: 3.4.0
configFile: .testcaferc.js

Manually Setting the Request Proxy:

Alternatively, you can apply the proxy settings as you make requests:

// HTTP_PROXY is pre-populated when using Sauce Connect
const items = process.env.HTTP_PROXY.split(':');
const host = items[1].replaceAll('/', '');
const port = items[2];
const response = await t.request({
url: `http://some-internal-resource.example.com/`,
method: 'get',
proxy: {
protocol: 'http',
host,
port,
}
});