Can't instrument code when serving storybook production build

Viewed 15

I'm having a storybook with vue3 and vite. I want to measure my code coverage via istanbul when I run playwright tests. Therefore I configured my storybook vite under .storybook/main.ts as follows:

const config: StorybookViteConfig = {
 ....
  typescript: {
    check: false,
    checkOptions: {},
  },
  framework: '@storybook/vue3',
  core: {
    builder: '@storybook/builder-vite',
  },
 ...
  async viteFinal(config, { configType }) {
    return mergeConfig(config, {
      plugins: [
        istanbul({
          include: 'src/*',
          exclude: ['node_modules', 'test/'],
          extension: ['.js', '.ts', '.vue'],
        }),
      ],
      ....
    })
  },
}
export default config

When I run storybook in dev mode with start-storybook -p 6006 and execute my playwright tests afterwards, the code is instrumented (coverage is not null) and a code coverage is measured.

However, when I build storybook and start the static build afterwards with these commands: build-storybook && http-server storybook-static --port 6006, the website works fine, but the coverage variable doesn't exist and no code coverage is measured, when I run playwright tests there.

I want to measure my code coverage in the ci used the built storybook for that (see https://storybook.js.org/docs/react/writing-tests/test-runner#run-against-non-deployed-storybooks). Or is there any other way to run playwright tests and measure code coverage in the ci?

0 Answers
Related