diff --git a/karma.conf.js b/karma.conf.js
index 3bb69b01583c88d837af67ab7a938708c37ecbee..0757af3de4a45f1166f662f17f3fbc984755a059 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -1,10 +1,16 @@
-module.exports = function (config) {
+module.exports = async function (config) {
+    const {installBrowsersForNpmInstall, registry} = require('playwright-core/lib/utils/registry');
+    await installBrowsersForNpmInstall(['firefox', 'chromium']);
+    process.env.FIREFOX_BIN = registry.findExecutable('firefox').executablePath();
+    process.env.CHROME_BIN = registry.findExecutable('chromium').executablePath();
+
     config.set({
         basePath: 'dist',
-        frameworks: ['mocha'],
+        frameworks: ['mocha', 'source-map-support'],
         client: {
             mocha: {
                 ui: 'tdd',
+                timeout: 2000 * (process.env.CI === undefined ? 1 : 10),
             },
         },
         files: [
diff --git a/package.json b/package.json
index ed8cbcee47091238dd197f418adf91f612315a09..18ea198e6bfe4fb58c3fba89f70701e011ece99b 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,9 @@
         "karma-chrome-launcher": "^3.1.0",
         "karma-firefox-launcher": "^2.1.0",
         "karma-mocha": "^2.0.1",
+        "karma-source-map-support": "^1.4.0",
         "mocha": "^9.0.0",
+        "playwright-core": "^1.20.2",
         "prettier": "^2.5.1",
         "rollup": "^2.18.1",
         "rollup-plugin-copy": "^3.3.0",
diff --git a/yarn.lock b/yarn.lock
index 89e64d0fff7e6110ee0a94c65bce09fa5c24308e..490dface56ac0d16f77cb05ee92b435184886b2f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4046,6 +4046,13 @@ karma-mocha@^2.0.0, karma-mocha@^2.0.1:
   dependencies:
     minimist "^1.2.3"
 
+karma-source-map-support@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b"
+  integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==
+  dependencies:
+    source-map-support "^0.5.5"
+
 karma@^6.0.0:
   version "6.3.17"
   resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.17.tgz#5d963fb52463b73e1b5892ecb54c8f21bb04ba1d"
@@ -5756,7 +5763,7 @@ source-map-resolve@^0.5.0:
     source-map-url "^0.4.0"
     urix "^0.1.0"
 
-source-map-support@~0.5.20:
+source-map-support@^0.5.5, source-map-support@~0.5.20:
   version "0.5.21"
   resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
   integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==