mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-02 00:09:30 +01:00
Enable test/test-integration scripts to take file.test.ts arguments (#306039)
* Enable test/test-integration scripts to take file.test.ts arguments The agent likes to use them this way, when it doesn't read the skill Co-authored-by: Copilot <copilot@github.com> * And this * Fixes * update Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
22
.github/skills/unit-tests/SKILL.md
vendored
22
.github/skills/unit-tests/SKILL.md
vendored
@@ -26,7 +26,25 @@ These scripts download Electron if needed and launch the Mocha test runner.
|
||||
|
||||
### Commonly used options
|
||||
|
||||
#### `--run <file>` - Run tests from a specific file
|
||||
#### Bare file paths - Run tests from specific files
|
||||
|
||||
Pass source file paths directly as positional arguments. The test runner automatically treats bare `.ts`/`.js` positional arguments as `--run` values.
|
||||
|
||||
```bash
|
||||
./scripts/test.sh src/vs/editor/test/common/model.test.ts
|
||||
```
|
||||
|
||||
```bat
|
||||
.\scripts\test.bat src\vs\editor\test\common\model.test.ts
|
||||
```
|
||||
|
||||
Multiple files:
|
||||
|
||||
```bash
|
||||
./scripts/test.sh src/vs/editor/test/common/model.test.ts src/vs/editor/test/common/range.test.ts
|
||||
```
|
||||
|
||||
#### `--run <file>` - Run tests from a specific file (explicit form)
|
||||
|
||||
Accepts a **source file path** (starting with `src/`). The runner strips the `src/` prefix and the `.ts`/`.js` extension automatically to resolve the compiled module.
|
||||
|
||||
@@ -80,7 +98,7 @@ Override the default Mocha timeout for long-running tests.
|
||||
|
||||
### Integration tests
|
||||
|
||||
Integration tests (files ending in `.integrationTest.ts` or located in `extensions/`) are **not run** by `scripts/test.sh`. Use `scripts/test-integration.sh` (or `scripts/test-integration.bat`) instead. See the `integration-tests` skill for details on filtering and running specific integration test files.
|
||||
Integration tests (files ending in `.integrationTest.ts` or located in `extensions/`) are **not run** by `scripts/test.sh`. Use `scripts/test-integration.sh` (or `scripts/test-integration.bat`) instead. See the `integration-tests` skill for details.
|
||||
|
||||
### Compilation requirement
|
||||
|
||||
|
||||
@@ -27,8 +27,9 @@ const minimist = require('minimist');
|
||||
|
||||
/**
|
||||
* @type {{
|
||||
* _: string[];
|
||||
* grep: string;
|
||||
* run: string;
|
||||
* run: string | string[];
|
||||
* runGlob: string;
|
||||
* testSplit: string;
|
||||
* dev: boolean;
|
||||
@@ -62,7 +63,10 @@ const args = minimist(process.argv.slice(2), {
|
||||
});
|
||||
|
||||
if (args.help) {
|
||||
console.log(`Usage: node ${process.argv[1]} [options]
|
||||
console.log(`Usage: node ${process.argv[1]} [options] [file...]
|
||||
|
||||
Bare .ts/.js file paths passed as positional arguments are treated as
|
||||
--run arguments.
|
||||
|
||||
Options:
|
||||
--grep, -g, -f <pattern> only run tests matching <pattern>
|
||||
@@ -83,6 +87,14 @@ Options:
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Treat bare .ts/.js positional arguments as --run values
|
||||
const bareFiles = (args._ || []).filter(a => typeof a === 'string' && (a.endsWith('.ts') || a.endsWith('.js')));
|
||||
if (bareFiles.length > 0) {
|
||||
const existing = !args.run ? [] : Array.isArray(args.run) ? args.run : [args.run];
|
||||
args.run = [...existing, ...bareFiles];
|
||||
args._ = (args._ || []).filter(a => !bareFiles.includes(a));
|
||||
}
|
||||
|
||||
let crashReporterDirectory = args['crash-reporter-directory'];
|
||||
if (crashReporterDirectory) {
|
||||
crashReporterDirectory = path.normalize(crashReporterDirectory);
|
||||
|
||||
Reference in New Issue
Block a user