Tilted sphere with longitudinal stripes Modern Web Guides Docs Blog Toggle darkmode

Test Frameworks: Write Your Own

You can Write Your Own test framework for web test runner by wrapping an existing testing framework or creating a specific one for your project.

This is a minimal example:

import { getConfig, sessionStarted, sessionFinished, sessionFailed, } from '@web/test-runner-core/browser/session.js'; (async () => { // notify the test runner that we're alive sessionStarted(); // fetch the config for this test run, this will tell you which file we're testing const { testFile, watch, debug, testFrameworkConfig } = await getConfig(); const failedImports = []; // load the test file as an es module await import(new URL(testFile, document.baseURI).href).catch(error => { failedImports.push({ file: testFile, error: { message: error.message, stack: error.stack } }); }); try { // run the actual tests, this is what you need to implement const testResults = await runTests(); // notify tests run finished sessionFinished({ passed: failedImports.length === 0 && testResults.passed, failedImports, testResults, }); } catch (error) { // notify an error occurred sessionFailed(error); return; } })();