Closed flixman closed 9 months ago
HI, sorry for the late reply. jest.virtualFolders
is only available in v6 pre-release. It seems that you are using the 5.2.3, please try the pre-release instead.
Sorry for hijacking this, however I am facing a similar problem. I want to start all test within a folder subfolder
from vscode, however for some reason the pattern below is not correct, it misses the tsroot
part, which is set in settings.json via jest.rootPath
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In /home/XXX/project/tsroot
3509 files checked.
testMatch: /home/XXX/project/tsroot/**/*(*.)@(spec|test).[tj]s?(x) - 507 matches
testPathIgnorePatterns: /home/XXX/project/tsroot/build/, /home/XXX/project/tsroot/node_modules/ - 1690 matches
testRegex: - 0 matches
Pattern: /home/XXX/project/subfolder - 0 matches
Interestingly tsroot
is also not shown in the Test Explorer view where the tree is project
/subfolder
, tsroot
is missing there as well.
Any ideas?
@stefanrybacki, I need clarification on what your project structure is. Is it /home/XXX/project/subfolder/tsroot or /home/XXX/project/tsroot? What is the actual vscode workspace folder? Are you able to run jest even on the terminal (to verify it is not a jest config issue)? Where do you usually run your tests? subfolder? tsroot? Are you also using virtualFolders?
Okay, the best way is to create a sample repo so we can skip these questions. And you might want to create your own issue so we won't mix these 2 together.
@connectdotz thanks for your answer, The project is very large and I am not sure how much of the configs we use I can disclose as well as reduce in order to provide a testing repo. However, I can create a new ticket for sure. Just for the record regarding your questions: the structure is /home/XXX/project/tsroot
, with tsroot being the ts root folder within the project folder one lever higher. The workspace folder would be /home/XXX/project
. Jest runs on the terminal, tests I start from within a spec.ts file via the green play button also work (for the most part, paramterized tests not working correctly if selected individually). And last but not least I run test from tsroot
if I want all, or individually from within a spec.ts file. However, just in this case I wanted to run all tests within subfolder
from the vscode test explorer but that did not work (because of I assume the wrong folder to match).
I am having the same or a similar problem: I can't run tests by the folder from the "Testing" tab on left navbar, it says the regex has no matches.
This is happening after I changed to the pre-release version, because I had a bug where the Test Results Output was not being shown.
My folder structure hasn't changed, but the behavior of the extension seems to be different somehow.
![Uploading image.png…]()
@mirceaburac-sugarcrm, this is interesting... can you upload a screen recording that shows me the issue (the png link you posted above didn't take me to the actual image)? If this is a bug in the pre-release we should definitely fix it.
@mirceaburac-sugarcrm, do you still experience this issue? Can you show us the error screenshot with the spawned command line?
@connectdotz Sorry, the first time the picture upload bugged. You can see here:
This only occurs on the pre release version. The release version is fine. The problem I have with the release version is that the output in Test Results just disappears after the tests are done.
@mirceaburac-sugarcrm, from the output, it looks like your jest config found tests under
"/home/xxx/Projects/xxx/projects/xxx/frontend/app/src/"
but you are trying to run tests in
"/home/xxx/Projects/xxx/src/components/ManageUsersList"
Which doesn't seem to be under your jest config's testMatch pattern? Are you using virtualFolders? is it using the wrong jest config? do you have a sample repo we can dig further?
@connectdotz I don't have a sample repo unfortunately.
The only thing I can point to is that this wrong folder configuration is only happening when I switch to the pre release version, but works fine for the normal release.... As soon as I change from prerelease to normal release I don't have the problem anymore. No configs changed in between.
i was able to reproduce with a fairly simple example
npm ci
navigate to tests/asdf.spec.ts
and press the run icon next to the test
output:
> @detachhead/ts-helpers@16.1.0 test
> jest "--testLocationInResults" "--json" "--useStderr" "--outputFile" "C:\\Users\\user\\AppData\\Local\\Temp\\jest_runner_ts_helpers_user_2.json" "--no-coverage" "--reporters" "default" "--reporters" "c:\\Users\\user\\.vscode\\extensions\\orta.vscode-jest-5.2.3\\out\\reporter.js" "--colors" "--watchAll=false" "--testPathPattern" "c:\\\\Users\\\\user\\\\IdeaProjects\\\\ts-helpers\\\\test\\\\asdf\\.spec\\.ts"
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In C:\Users\user\IdeaProjects\ts-helpers
7 files checked.
testMatch: - 0 matches
testPathIgnorePatterns: \\node_modules\\ - 7 matches
testRegex: \\test\\.*.ts - 1 match
Pattern: c:\\\\Users\\\\user\\\\IdeaProjects\\\\ts-helpers\\\\test\\\\asdf\\.spec\\.ts - 0 matches
open a terminal and run jest
output:
> jest
ts-jest[ts-jest-transformer] (WARN) Define `ts-jest` config under `globals` is deprecated. Please do
transform: {
<transform_regex>: ['ts-jest', { /* ts-jest config goes here in Jest */ }],
},
PASS test/asdf.spec.ts
√ asdf (1 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.312 s
Ran all test suites.
(for everything else see package-lock.json
)
@DetachHead, I tried your repo following your steps, and the test ran fine. Comparing the output, I did notice your "testPathPattern"
is not right: it seems to be double-escaped \\\\
while the right pattern should be \\
... Do you happen to be running with npm < 8.15? see comment for a known bug that could cause this issue.
@mirceaburac-sugarcrm, we are getting ready to promote the pre-release to production. However, your issue still concerns me. I would like to try one last time to see if we can figure it out...
From the error info, I am not sure how it could have worked with the production version. It seems your jest config should not recognize "/home/xxx/Projects/xxx/src/components/ManageUsersList"
since it is not in your testMatch
pattern. Did I miss something?
Can you take a snapshot of a working command line output (you should be able to see it in the TERMINAL tab with names like "Jest (xxx)").
Since you don't have a sample repo, please provide more details below:
appreciated.
@DetachHead, I tried your repo following your steps, and the test ran fine. Comparing the output, I did notice your
"testPathPattern"
is not right: it seems to be double-escaped\\\\
while the right pattern should be\\
... Do you happen to be running with npm < 8.15? see comment for a known bug that could cause this issue.
not currently at that PC so i can't check right now, but that explanation sounds right. haven't updated node/npm in a while on that device, but the issue doesn't occur on my other machine with npm 10.2.4.
i'll check in a few hours and let you know if that was the issue
yeah updating npm fixed the issue for me
@mirceaburac-sugarcrm I think i might have found the suspect... please give v6.1.2 a try and let me know if it resolves the issue you were seeing.
@connectdotz Trying 6.1.2, it works to run individual test suites, but as soon as I try running a folder containing multiple suites, it errors.
Previous questions:
const path = require('path');
module.exports = {
webpack: {
alias: {
'@myproject': path.resolve(dirname, 'src/'),
'@maple-syrup': path.resolve(dirname, 'src/maple-syrup/'),
},
},
jest: {
configure: {
moduleNameMapper: {
'^@myproject(.)$': '
- How did you run jest from the command line? What is the command and from which directory?
I don't, I run `yarn test` and run all suites. I started using the extension in order to be able to run tests individually while working on something specific. I guess now that the pre release lets me do that, I can work on specific tests using the extension, and run all suites with `yarn test`. Although it would be nice to be able to run multiple suites through the test window with the extension.
@mirceaburac-sugarcrm, good to hear you can run individual tests in the pre-release now.
As for running multiple suites for your monorepo project: Yes, you should be able to do so by setting up your project as a multi-root workspace or using the new jest.virtualFolders
to host each project in its own (real/virtual) folder. You can find more info here: https://github.com/jest-community/vscode-jest?tab=readme-ov-file#how-to-use-the-extension-with-monorepo-projects
In the root of my app there are two folders, backend and frontend. All the react code is in frontend/src, and I cannot get any tests detected, however I can run them from the CLI without any issue.
update: Actually is worse. With this configuration in my .vscode/settings.json, I get the error "unknown Configuration setting".
Environment
vscode-jest version
: 5.2.3node -v
: 20.9.0npm -v
: 10.2.1npm ls jest
: 29.7.0Prerequisite
Steps to Reproduce
Just start VSCode and get to Test, no tests get detected.