{"id":14182,"library":"ui5-test-runner","title":"UI5 Test Runner","description":"ui5-test-runner is a standalone, self-sufficient test runner for UI5 applications, designed to execute tests in parallel across multiple browser instances. This approach effectively mitigates browser memory consumption issues and reduces overall test execution time, positioning it as a robust alternative to the UI5 Karma runner. The current stable version is 5.13.1, with frequent patch releases for bug fixes (monthly/bi-monthly) and minor feature releases every few months. Its key differentiators include its focus on parallel execution, optimized memory management for large UI5 test suites, and direct command-line interface usage, supporting various browser automation tools like Puppeteer, Selenium/WebDriver, and Playwright.","status":"active","version":"5.13.1","language":"javascript","source_language":"en","source_url":"https://github.com/ArnaudBuchholz/ui5-test-runner","tags":["javascript","REserve","test","continuous","integration","code","coverage","ui5"],"install":[{"cmd":"npm install ui5-test-runner","lang":"bash","label":"npm"},{"cmd":"yarn add ui5-test-runner","lang":"bash","label":"yarn"},{"cmd":"pnpm add ui5-test-runner","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used for browser automation when configured.","package":"puppeteer","optional":true},{"reason":"Used for browser automation when configured.","package":"selenium-webdriver","optional":true},{"reason":"Required for code coverage reporting.","package":"nyc","optional":true}],"imports":[{"note":"This package is primarily a command-line interface (CLI) tool. It is not designed for direct programmatic import as a library.","wrong":"import { ui5TestRunner } from 'ui5-test-runner'","symbol":"CLI tool","correct":"npx ui5-test-runner"},{"note":"The recommended way to invoke the CLI locally within a project is via an npm script or 'npx'.","wrong":"\"test\": \"node node_modules/ui5-test-runner/bin/cli.js\"","symbol":"npm script","correct":"\"test\": \"ui5-test-runner --config ui5-runner.json\""}],"quickstart":{"code":"{\n  \"name\": \"my-ui5-app\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A sample UI5 application\",\n  \"scripts\": {\n    \"test\": \"ui5-test-runner --config ui5-runner.json\"\n  },\n  \"devDependencies\": {\n    \"ui5-test-runner\": \"^5.0.0\",\n    \"puppeteer\": \"^22.0.0\" \n  }\n}\n\n// ui5-runner.json\n{\n  \"browsers\": [\n    {\n      \"name\": \"chromium\",\n      \"headless\": true\n    }\n  ],\n  \"testPageUrls\": [\n    \"/test/unit/unitTests.qunit.html\",\n    \"/test/integration/opaTests.qunit.html\"\n  ],\n  \"serve\": {\n    \"module\": \"@ui5/server\",\n    \"config\": {\n      \"port\": 8080,\n      \"root\": \".\"\n    }\n  }\n}\n\n// To run: `npm test`","lang":"javascript","description":"Demonstrates how to set up `ui5-test-runner` to execute UI5 unit and integration tests using a local Puppeteer Chromium instance with a basic `package.json` script and configuration file."},"warnings":[{"fix":"Review and adjust your coverage thresholds, and configure `nyc` appropriately to exclude unwanted files or directories from coverage analysis.","message":"Starting with v5.0.0, some coverage reports now include all files, even those without executed code, which may lead to a potential decrease in reported coverage percentages.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Upgrade your Node.js environment to version 18 or a more recent LTS release.","message":"Version 4.0.0 dropped support for Node.js 16. The runner now requires Node.js 18 or higher.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Upgrade your Node.js environment to version 18 or higher.","message":"Version 3.0.0 dropped support for Node.js 14, requiring Node.js 16 or higher at the time, which has since been superseded by the Node.js 18 requirement.","severity":"breaking","affected_versions":">=3.0.0 <4.0.0"},{"fix":"Refer to the official documentation for v2.0.0 and above to update your command-line arguments and configuration files to the new syntax.","message":"Version 2.0.0 introduced significant changes to both command-line parameters and configuration file syntax, making it incompatible with configurations from prior major versions.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Consult the dedicated documentation section on browser configuration for `ui5-test-runner` v2.0.0+ to correctly set up your test browsers.","message":"The browser instantiation command evolved in an incompatible way with v2.0.0, requiring changes to how browsers are defined and launched.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use the `--unsecure` option when running remote UI5 tests to bypass these local network access checks if appropriate for your testing environment.","message":"For UI5 remote tests, especially when running with Chrome or Playwright, local network access checks might block connections from insecure contexts (e.g., HTTP sites to private IPs). This issue was addressed in v5.11.0.","severity":"gotcha","affected_versions":">=5.11.0"},{"fix":"Always ensure that browser arguments provided are valid and non-empty. For versions 5.9.0 and later, a warning will be issued if empty arguments are detected.","message":"Prior to version 5.9.0, empty browser arguments were silently filtered out without explicit warnings, potentially leading to unexpected browser behavior or misconfiguration.","severity":"gotcha","affected_versions":"<5.9.0"}],"env_vars":null,"search_vec":"'5.13.1':59 'across':25 'altern':48 'applic':18 'approach':30 'autom':102 'browser':27,33,101 'bug':65 'code':114 'command':95 'command-lin':94 'consumpt':35 'continu':112 'coverag':115 'current':55 'design':19 'differenti':77 'direct':93 'effect':31 'everi':72 'execut':21,41,83 'featur':70 'fix':66 'focus':80 'frequent':61 'includ':78 'instanc':28 'integr':113 'interfac':97 'issu':36 'javascript':109 'karma':52 'key':76 'larg':88 'like':104 'line':96 'manag':86 'memori':34,85 'minor':69 'mitig':32 'month':74 'monthly/bi-monthly':67 'multipl':26 'optim':84 'overal':39 'parallel':24,82 'patch':62 'playwright':108 'posit':43 'puppet':105 'reduc':38 'releas':63,71 'reserv':110 'robust':47 'runner':3,7,15,53 'selenium/webdriver':106 'self':12 'self-suffici':11 'stabl':56 'standalon':10 'suffici':13 'suit':91 'support':99 'test':2,6,14,22,40,90,111 'time':42 'tool':103 'ui5':1,5,17,51,89,116 'ui5-test-runner':4 'usag':98 'various':100 'version':57","created_at":"2026-04-20T01:58:21.244981+00:00","updated_at":"2026-04-20T01:58:21.244981+00:00","problems":[{"fix":"Upgrade your Node.js installation to version 18 or a newer LTS release.","cause":"Attempting to run `ui5-test-runner` with a Node.js version older than 18.","error":"Error: Node.js version not supported. Minimum required: 18."},{"fix":"Increase the `--timeout` option in your command or configuration, ensure your browser drivers are correctly set up, or investigate long-running test cases.","cause":"Tests are taking longer than the configured timeout, or there was an issue launching/connecting to a browser instance.","error":"ERR! Test runner failed. Error: Timeout during test execution."},{"fix":"Install `puppeteer` as a dev dependency in your project: `npm install --save-dev puppeteer`, or globally if preferred: `npm install --global puppeteer`.","cause":"A browser requiring Puppeteer (e.g., 'chromium') is configured, but `puppeteer` is not installed as a local or global dependency.","error":"Error: Cannot find module 'puppeteer'"},{"fix":"Verify the path to your configuration file (e.g., `--config my-config.json`) and ensure its content is valid.","cause":"The test runner cannot locate the specified configuration file, or the file contains syntax errors (e.g., invalid JSON/YAML).","error":"Error: Configuration file 'ui5-runner.json' not found or invalid."},{"fix":"Add the `--unsecure` option to your `ui5-test-runner` command or configuration, specifically for remote tests requiring local network access.","cause":"The browser (e.g., Chrome) is blocking an insecure connection from the test runner to a local IP address during UI5 remote testing, due to new security policies.","error":"Local network access to unsecure private network prevented."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"ui5-test-runner","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/ArnaudBuchholz/ui5-test-runner","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/ui5-test-runner","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-18","install_tag":null}}