redhat-developer / vscode-extension-tester

ExTester: Your Essential UI Testing Companion for Visual Studio Code Extensions! Seamlessly execute UI tests with Selenium WebDriver, ensuring robustness and reliability in your extension development journey. Simplify UI testing for your VS Code extensions and elevate the quality of your user interface effortlessly.
Apache License 2.0
261 stars 71 forks source link

[🚫 Bug] Coverage option produces not expected output #1463

Open rH4rtinger opened 2 months ago

rH4rtinger commented 2 months ago

Describe the bug

I have a extension that is built via webpack.

When I try to get the coverage, I needed to give the option -u, otherwise I would not get any coverage result.

The result I got was from my minified file built by webpack. This is not good for getting any coverage result, because you can not read any information from a file, that has just one line.

script in package.json:

"scripts": {
   "vscode:prepublish": "webpack --mode production --devtool hidden-source-map",
   "test:e2e:coverage": "extest setup-and-run  'out/test/e2e/**/*.test.js' -u -e ./out/e2e/extensions  --coverage"
}

This is the start of my coverage report. image Note that there are no more lines.

I tried switching my mode for building to development. This produced no coverage.

Expected behavior

  1. Coverage should produce any output without needing to give the -u flag.
  2. Coverage should produce a good output, even when using webpack. Or working with development flag from webpack.

Steps to reproduce

1. Built an extension with webpack
2. Try to get a coverage result

Logs

NOTE: This is the end of the log output from the webpack build with development flag on.

Shutting down the browser
[main 2024-08-05T06:40:09.786Z] Extension host with pid 25360 exited with code: 0, signal: unknown.
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 | 
----------|---------|----------|---------|---------|-------------------

Operating System

Windows 10

Visual Studio Code

1.92.0

vscode-extension-tester

8.5.0

NodeJS

22.4.0

npm

10.8.1

TamiTakamiya commented 2 months ago

@rH4rtinger Our extension is also using minified js files in the production code for client (extension) and server (language server) par. For getting code coverage performed by vscode-extension-tester, we exclude them and only performed webpack on the js files used in webviews. You may want to see the webpack.conig.ts file that we are using. Could you implement a similar change to your webpack configuration file?

rH4rtinger commented 2 months ago

I can not modify my webpack config file in the way you do, because my extension consists from just one entry point. If I remove this entry point, then nothing will build.

I created a example project with the coverage results checked in.

If you check out the extension.js coverage, you can see that the results that I get are not really informative.