connorshea / vscode-ruby-test-adapter

A Ruby test adapter extension for the VS Code Test Explorer
https://marketplace.visualstudio.com/items?itemName=connorshea.vscode-ruby-test-adapter
MIT License
83 stars 50 forks source link

Cannot find module out/main.js #56

Open svoop opened 3 years ago

svoop commented 3 years ago

Your environment

Expected behavior

The test suite should be detected.

Actual behavior

The developer tools log the following:

abstractExtensionService.ts:717 Activating extension 'connorshea.vscode-ruby-test-adapter' failed: Cannot find module '/Users/steve/.vscode-oss/extensions/connorshea.vscode-ruby-test-adapter-0.7.1/out/main.js'

No output in the logpanel.

Maybe Relevant Details

I'm writing spec-like tests as per MiniTest::Spec. Therefore, the filesystem looks as follows:

spec/
  |
  +-- spec_helper.rb
  |
  +-- lib/

I've tried most of the settings for this extension with zero effect.

floreal commented 3 years ago

I have the same problem on my archlinux, (vscode 1.51.1) with rspec.

trinitronx commented 11 months ago

@floreal: On ArchLinux, it's likely that you're using the code package which is actually the Open Source unofficial build of VSCode (a.k.a. "Code OSS"). It's likely this issue also affects any Arch-based distributions and OSS packaging of VSCode (e.g. VSCodium).

The error you're probably getting looks like this:

[error] Error: Cannot find module '/home/trinitronx/.vscode/extensions/connorshea.vscode-ruby-test-adapter-0.9.0-universal/out/src/main.js'
Require stack:
- /usr/lib/code/out/vs/loader.js
- /usr/lib/code/out/bootstrap-amd.js
- /usr/lib/code/out/bootstrap-fork.js
- 
    at Module._resolveFilename (node:internal/modules/cjs/loader:1082:15)
    at o._resolveFilename (node:electron/js2c/utility_init:2:3040)
    at Module._load (node:internal/modules/cjs/loader:927:27)
    at f._load (node:electron/js2c/asar_bundle:2:13330)
    at c._load (/usr/lib/code/out/vs/workbench/api/node/extensionHostProcess.js:135:5630)
    at m._load (/usr/lib/code/out/vs/workbench/api/node/extensionHostProcess.js:132:29116)
    at D._load (/usr/lib/code/out/vs/workbench/api/node/extensionHostProcess.js:99:19764)
    at Module.require (node:internal/modules/cjs/loader:1148:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Function.i [as __$__nodeRequire] (/usr/lib/code/out/vs/loader.js:5:98)
    at n.rb (/usr/lib/code/out/vs/workbench/api/node/extensionHostProcess.js:132:30295)
    at async Promise.all (index 0)

The OSS versions of VSCode use OpenVSX, which for some extensions that were auto-imported seems to have broken .vsix packaging. The common symptoms of this are messages like the error above where the nodejs entrypoint script can't be found because the extension wasn't packaged correctly and actually didn't include that entrypoint script file.

The workaround is to download the .vsix file manually from either the extension's GitHub Releases (if available), or the Microsoft VisualStudio Marketplace.

@connorshea: Ideally, the extension owner should claim ownership of their extension on OpenVSX and publish a working version. See #126 for more details.