All Versions
167
Latest Version
Avg Release Cycle
24 days
Latest Release
504 days ago

Changelog History
Page 2

  • v1.18.3 Changes

    January 25, 2022

    ๐Ÿ› Bug Fixes

    • ๐Ÿ“ฆ The nanoid package is vulnerable to CVE-2021-23566 (#6826)
    • โœ… The Selector.visibility property does not depend on the parent elements' visibility (#3495)
  • v1.18.2 Changes

    January 18, 2022

    ๐Ÿ› Bug Fixes

    • โœ… Tests with client scripts yield the "Cannot read property 'tests' of null" error (#6305)
    • โœ… TestCafe hangs after failing to initialize a Role (#5278)
    • ๐Ÿ”ง Testcafe falsely detects filter directives in the configuration file (#6620)
    • โœ… Concurrent Chrome instances cannot reconnect to TestCafe after a restart (#4554)
    • โœ… TestCafe hangs if a user enters an iframe and then switches to a different browser window (#6085)
    • โœ… TestCafe opens incorrect URLs when you concurrently run multiple fixtures from the same test file (#6041)
    • โœ… TestCafe expands disabled <select> elements (#5616)
    • โœ… TestCafe does not load some cross-domain iframes (#6633)
    • โœ… TestCafe incorrectly sets the Document.referrer property in Chrome 89 (#6144)
    • โœ… Tests hang when the test page initiates a file download (#5796)
    • ๐Ÿ”’ Requests fail because TestCafe incorrectly handles dynamic content security policy (#6057)
    • โœ… TestCafe triggers pointerdown event handlers twice (#5891)
    • โœ… TestCafe cannot trigger click event handlers for Angular buttons with the "disabled" attribute (#5240)
  • v1.18.1 Changes

    December 23, 2021

    ๐ŸŽ macOS Bug Fix

    โšก๏ธ TestCafe fails to launch Safari after the v1.18.0 update.

  • v1.18.0 Changes

    December 22, 2021

    ๐ŸŽ TestCafe v1.18.0 includes a new experimental Selector debugging capability, important improvements for macOS users and a number of routine bug fixes.

    ๐Ÿš€ If you run TestCafe on macOS, follow the Upgrade Guide to make sure your upgrade goes smoothly.

    ๐Ÿ†• New Debugging Capabilities (Experimental)

    โœ… If you launch TestCafe with the --experimental-debug flag, you can debug Selectors and Client Functions in the Watch panel of a Node.js debugger.

    ๐ŸŽ macOS improvements

    โœ… TestCafe Browser Tools on Apple Silicon

    ๐Ÿ“ฆ The TestCafe Browser Tools package is a communication layer that automates browsers on behalf of TestCafe. Both the TestCafe framework and TestCafe Studio include the TestCafe Browser Tools binary.

    ๐Ÿ“š Earlier versions of TestCafe Browser Tools were optimized for the x86-64 architecture. Apple Silicon Macs ran those binaries through the Rosetta 2 translation layer. Rosetta 2 took up additional space and prevented TestCafe from taking full advantage of the processor.

    TestCafe v1.18.0 includes a Universal TestCafe Browser Tools binary that runs natively on both x64 Macs and Apple Silicon Macs.

    ๐Ÿš€ Follow the Upgrade Instructions to make sure your version of TestCafe Browser Tools is up to date.

    ๐ŸŽ TestCafe Browser Tools macOS Permission Fix

    ๐Ÿ”’ The TestCafe Browser Tools binary requires special privileges to automate browsers and take screenshots. Security improvements in recent versions of macOS made these privileges harder to obtain.

    ๐ŸŽ Prior to TestCafe v1.18.0, each installation of TestCafe and TestCafe Studio included a TestCafe Browser Tools binary. macOS users with multiple sets of TestCafe Browser Tools had to go through a lengthy process to obtain the necessary permissions.

    โœ… TestCafe v1.18.0 and TestCafe Studio v1.7 address this issue. Beginning with this version, all TestCafe installations share a single TestCafe Browser Tools binary. TestCafe stores this binary in the user's Home directory, inside the hidden ~/.testcafe-browser-tools folder.

    ๐Ÿš€ Follow the Upgrade Instructions to reset TestCafe Browser Tools' permissions and enable the new binary.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ TestCafe immediately closes new windows (#6680)
    • โœ… Tests fail with the TypeError: Invalid value used as weak map key. error (#6563)
    • ๐Ÿณ The latest version of the TestCafe Docker image cannot connect to Chrome and Chromium (#6436)
    • โœ… TestCafe loses test error call stack and outputs the following message instead: "Uncaught object "[object Object]" (Issue #6624. Discovered by @danieltroger, PR by @rob4629.)
    • โœ… Lack of definitions for two new timeout options results in TypeScript compilation errors (#6713)
    • โœ… TypeScript filter functions erroneously require a Promise return value (#6705)
  • v1.17.1 Changes

    November 11, 2021

    ๐Ÿ› Bug Fixes

    • ๐Ÿ”ง TestCafe incorrectly reads the 'reporter' configuration file option (#6665, #6594).
    • โœ… An error report displays multiple warnings when you debug a test in headless mode (#6605).
    • โœ… The testcafe-hammerhead proxy fails to load a web page (testcafe-hammerhead/#2708).
  • v1.17.0 Changes

    November 02, 2021

    โœจ Enhancements

    โœ… Global Test and Fixture Hooks

    ๐Ÿ“š You can now specify global test and fixture hooks. TestCafe attaches these hooks to every test / fixture in the test suite.

    module.exports = {
        hooks: {
            fixture: {
                before: async (ctx) => {
                    // your code
                },
                after: async (ctx) => {
                    // your code
                }
            },
            test: {
                before: async (t) => {
                    // your code
                },
                after: async (t) => {
                    // your code
                }
            }
        }
    };
    

    Execution Timeouts

    ๐Ÿ“š You can now specify custom timeouts for tests and test runs. If a test/test run is idle or unresponsive for the specified length of time, TestCafe terminates it. Specify these timeouts in the configuration file or from the command line.

    ๐Ÿ’ป Command line interface

    testcafe chrome my-tests --test-execution-timeout 180000
    testcafe chrome my-tests --run-execution-timeout 180000
    

    ๐Ÿ”ง Configuration file

    {
        "runExecutionTimeout": 180000,
        "testExecutionTimeout": 180000
    }
    

    ๐Ÿ› Bug Fixes

    • โœ… TestCafe fails to continue the test after the user downloads a file. (#6242).
    • โœ… The TestCafe proxy does not fire the "unpipe" event when necessary. This omission leads to the "This socket has been ended by the other party" error (#6558).
    • โœ… TestCafe incorrectly handles rewritten uninitialized iframes (testcafe-hammerhead/#2694, testcafe-hammerhead/#2693).
  • v1.16.1 Changes

    October 05, 2021

    ๐Ÿ› Bug Fixes

    • โœ… Incorrect handling of the beforeInput Firefox event (#6504)
    • ๐Ÿ’… Incorrect handling of page styles leads to test failure in Safari 15 (#6546)
    • ๐Ÿ’… Incorrect stylesheet filtering procedure leads to client-side errors in IE11 (#6439)
  • v1.16.0 Changes

    September 08, 2021

    โœจ Enhancements

    ๐Ÿ‘Œ Support for JavaScript configuration files

    ๐Ÿ”ง You can now store TestCafe settings in a js file. Configuration properties in JavaScript files can reference JavaScript methods, functions and variables, which makes it easy to create dynamic configuration files.

    Just export the JSON name/value pairs in the file:

    module.exports = {
        skipJsErrors: true,
        hostname: "localhost",
        // other settings
    }
    

    ๐Ÿ‘Œ Support for custom user variables in the configuration file

    ๐Ÿ”ง TestCafe v1.16.0 and later supports configuration files with variable declarations. Users can reference variables from a configuration file in the tests that utilize that configuration file. To enable access to configuration file variables, import the userVariables object from the testcafe module at the beginning of the test script.

    ๐Ÿšš This capability can come in handy if there's a single piece of data you want to use in multiple tests โ€” for example, the website's URL. That way, if your website moves to a new domain name, you don't have to change your tests one by one.

    If you previously used environment variables to achieve the same goal, you might prefer the new method โ€” it significantly simplifies the setup process, and allows you to commit the data to a version control system.

    Define your custom variables with the userVariables JSON object:

    {
      "userVariables": {
        "url": "http://devexpress.github.io/testcafe/example",
      }
    }
    

    โœ… Reference this variable in your test:

    import { userVariables } from 'testcafe';
    
    fixture `Test user variables`
        .page(userVariables.url);
    
    test('Type text', async t => {
        await t
            .typeText('#developer-name', 'John Smith')
            .click('#submit-button');
    });
    

    Other enhancements

    • ๐Ÿ†• New option that disables thumbnail generation for test screenshots (PR by @taki-fw).
    • ๐Ÿ†• New embedding-utils API method that retrieves information about skipped tests (PR by @flora8984461).
    • โœ… The Runner.filter function supports asynchronous arguments (PR by @eignatyev).
    • โœ… You can import the test and fixture objects directly from the testcafe module (PR #6338).

    ๐Ÿ› Bug Fixes

    • โœ… TestCafe does not keep track of file changes in live mode (#6481).
  • v1.15.3 Changes

    August 19, 2021

    ๐Ÿ› Bug Fixes

    • โœ… TestCafe throws an error if you use the 'all' alias in the command line to run tests in all installed browsers (#6456).
    • ๐Ÿ”ง TestCafe does not check if the configuration file exists (#6337).
    • โœ… TestCafe cannot disable HTTP/2 to avoid compatibility issues (testcafe-hammerhead/#2681).
    • โœ… TestCafe works incorrectly if you use extended Function objects (testcafe-hammerhead/#2439).
    • โœ… TestCafe processes a test application incorrectly if it uses the Immutable.js library (testcafe-hammerhead/#2669).
    • โœ… TestCafe adds an element incorrectly into a nested body element (PR testcafe-hammerhead/#2682).
  • v1.15.2 Changes

    August 11, 2021

    ๐Ÿ› Bug Fixes

    • โœ… TestCafe fails to emulate the tab action if a page contains a cross-domain iframe (#6405).
    • ๐Ÿ”ง TestCafe ignores the quarantine mode options if you specify the configuration file (#6420).
    • โœ… TestCafe test fails if you specify a custom option as a command line argument (#6426)
    • The ERR_HTTP2_GOAWAY_SESSION error occurs randomly when you use HTTP/2 protocol (testcafe-hammerhead/#2653).
    • โœ… TestCafe fails if a page contains overridden getters for target elements (testcafe-hammerhead/#2662).
    • โœ… TestCafe incorrectly processes scripts that destruct empty elements (testcafe-hammerhead/#2670).