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,
}
});