-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mocha: Error: Cannot find module 'vscode' #5
Comments
hi - did you run npm install? |
@chrisdias yes, I did. Did you get this error too? |
@bpasero any ideas here? i can run tests under the debugger, but not from the command line. |
We do not support to run tests from the command line at the moment. The only exception is https://code.visualstudio.com/docs/extensions/testing-extensions#_running-tests-automatically-on-travis-ci-build-machines |
Tangentially related, I found this on a google search for the same issue. My solution has been the following: As I have been developing my extension, I abstract away all of the vscode module dependencies and wrap up my novel code in modules which don't rely on the vscode module. This makes my code testable in the large without adding a dependency on a third party module. I don't know how complex any other extensions might end up being for people who find this, but I thought it might help kick off a new thought process for anyone who runs into a similar issue. Ultimately it's not useful to test whether the vscode module is working properly if you are developing an extension, so hopefully, your code is basically testable except where it touches the VS Code API. |
Totally right way of writing tests 👍 |
As per microsoft/vscode-wordcount#5, running tests from CLI isn't supported with vscode except through the [workaround listed for Travis CI](https://code.visualstudio.com/docs/extensions/testing-extensions#_running-tests-automatically-on-travis-ci-build-machines).
This commit adds a test for `needCheckForUpdates`. (because, even though `metals-vscode` has a complicated logic, it lacks unit-tests to verify the behaviors). For adding unit tests, this commit abstract away the logics that need an access to vscode APIs, becuase we need to run integration test for accessing vscode APIs. see: microsoft/vscode-wordcount#5 (comment) microsoft/vscode#82471 (comment)
This commit adds a test for `needCheckForUpdates`. (because, even though `metals-vscode` has a complicated logic, it lacks unit-tests to verify the behaviors). For adding unit tests, this commit abstract away the logics that need an access to vscode APIs, becuase we need to run integration test for accessing vscode APIs. see: microsoft/vscode-wordcount#5 (comment) microsoft/vscode#82471 (comment)
scalameta#1144 This commit adds a test for `needCheckForUpdates`. For adding unit tests, this commit abstract away the logic that needs access to vscode APIs, becuase we need to run an integration test for accessing vscode APIs. see: microsoft/vscode-wordcount#5 (comment) microsoft/vscode#82471 (comment)
scalameta#1144 This commit adds a test for `needCheckForUpdates`. For adding unit tests, this commit abstract away the logic that needs access to vscode APIs, becuase we need to run an integration test for accessing vscode APIs. see: microsoft/vscode-wordcount#5 (comment) microsoft/vscode#82471 (comment)
I'm so miffed. I thought my tests were failing because I was using jest as my test runner. I was initially going to use this approach by defining types myself but I decided I should just set everything up with mocha. I spent all this time figuring out mocha only to find out that even with mocha you can't actually run the tests from the command line. I-- |
I definitely think you should consider breaking the dependency with a facade or something similar, defining a contract just for the facade, lift the interface definition out of the facade file, import it where you need the type, and do a cheap and dirty (or not so cheap and dirty) DI so you can text your module in isolation. I run all of my extension tests from the command line. I simply fake the output from the vscode module and then test the behavior from there. This should all work from jest. Ultimately, the real vscode module requires a full running instance of vscode which can be massively frustrating. Separately, if you want to test functionality in a live environment, you might be able to test electron applications with selenium. I haven't tried it myself, but I believe it is doable. |
Hi,
I was trying to run the testing with command
mocha out/test
but got this error
The text was updated successfully, but these errors were encountered: