Skip to content

Coverage not generated when we are using babel with custom browser [locally] #2719

Open
@skullpsg

Description

@skullpsg

I am trying to generate babel coverage report with istanbul format.Below is the config info of my project.

import { esbuildPlugin } from "@web/dev-server-esbuild";
import { defaultReporter } from "@web/test-runner";
import { junitReporter } from "@web/test-runner-junit-reporter";
import { playwrightLauncher } from "@web/test-runner-playwright";
import { fileURLToPath, URL } from "url";
import { fromRollup } from "@web/dev-server-rollup";
import rollupBabel from "@rollup/plugin-babel";

import resolveMimeType from "./mime-type-resolver.mjs";

const babel = fromRollup(rollupBabel);

export default {
  files: ["src/**/*.spec.ts", "src/**/*.spec.html"],
  plugins: [
    {
      name: "my-plugin",
      resolveMimeType(context) {
        return resolveMimeType(context.path);
      },
    },
    // Babel plugin
    babel({
      extensions: [".ts", ".tsx", ".js", ".jsx", ".es6", ".es", ".mjs"],
      include: ["src/**/*.ts", "src/**/*.js"],
      exclude: [
        "**/node_modules/**/*",
        "**/node_modules/.pnpm/**/*",
        "**/web_modules/**/*",
        "**/devserver_resources/**/*",
        "**/test_results/**/*",
        "**/__wds-outside-root__/**/*",
      ],
      babelHelpers: "bundled",
      presets: [["@babel/preset-env"], "@babel/preset-typescript"],
      plugins: [
        "babel-plugin-istanbul",
      ],
    }),
  ],
 browsers: [
   playwrightLauncher({
     launchOptions: {
      channel: "test",
       executablePath: <path-to-exe>,
     },
   }),
 ],
  staticLogging: !!process.env.CHROME_HEADLESS,
  reporters: [
    defaultReporter({
      reportTestResults: true,
      reportTestProgress: !process.env.CHROME_HEADLESS,
    }),
    junitReporter({
      outputPath: GetResultPath(),
      reportLogs: true,
    }),
  ],
  nodeResolve: {
    exportConditions: ["production"],
  },
  coverage: true,
  coverageConfig: {
    nativeInstrumentation: false,
    exclude: [
      "**/node_modules/**/*",
      "**/node_modules/.pnpm/**/*",
      "**/web_modules/**/*",
      "**/devserver_resources/**/*",
      "**/test_results/**/*",
      "**/*.spec.ts",
    ],
    report: true,
    reportDir: <coverage-path>,
    reporters: ["lcov", "json", "json-summary"],
  },
  playwright: true,
};

Above configuration generates empty result on coverage. If we remove be low configuration

 browsers: [
   playwrightLauncher({
     launchOptions: {
      channel: "test",
       executablePath: <path-to-exe>,
     },
   }),
 ],

It is generating result. How can we use browser with babel together to generate coverage result.

Thanks in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions