You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now it's quite cumbersome to filter out tests when using a Vitest CLI. You need to know the name and the file:
vitest test/basic.test.ts -t "some-name"
It fails if there are multiple tests that have the same pattern, so you are forced to use the full name manually:
vitest test/basic.test.ts -t "test full some-name"
Suggested solution
Vitest 1.4.0 introduced includeTaskLocation option that adds a location property to every test. With this information, we can filter tests by the line number:
vitest test/basic.test.ts:20
Alternative
No response
Additional context
I am not sure what should happen when the line doesn't exist or there is no test at that line. Currently, we only know the location of a test, and we don't know when the body of a test ends, so it's tricky to implement a range support.
I think we should:
Only run a test if the line is exactly equal to a location line
If there is no test at that location, throw an error
If range is used, throw an error (test/basic.test.ts:20-30)
I am not sure what should happen when the line doesn't exist or there is no test at that line. Currently, we only know the location of a test, and we don't know when the body of a test ends, so it's tricky to implement a range support.
In elixir it'll run the test, which starts the closest above the supplied line. That's less brittle in the context of line changes (e.g. removing an include at the top).
I've looked around in the codebase. What I have in mind is to add the filtering in packages/vitest/src/node/workspace.ts; and to use getTests() from packages/runner/src/utils/tasks.ts to access the tests in each file and its position.
It might take a bit of time till I bring about a PR. Just wanted to chime in and see if I'm on the right track, and if anyone has an notes or any pointers. 👀
Clear and concise description of the problem
Right now it's quite cumbersome to filter out tests when using a Vitest CLI. You need to know the name and the file:
It fails if there are multiple tests that have the same pattern, so you are forced to use the full name manually:
Suggested solution
Vitest 1.4.0 introduced
includeTaskLocation
option that adds alocation
property to every test. With this information, we can filter tests by the line number:Alternative
No response
Additional context
I am not sure what should happen when the line doesn't exist or there is no test at that line. Currently, we only know the location of a test, and we don't know when the body of a test ends, so it's tricky to implement a range support.
I think we should:
test/basic.test.ts:20-30
)Validations
The text was updated successfully, but these errors were encountered: