[BUG]: Default Validate Test Level isn't set to RunSpecifiedTests when passing --tests

Offen
#3,679 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
javascript, node.js
Bereich
cli, testing

Rechercherichtung

Read the shared testLevelFlag in src/utils/flags.ts and compare how sf project deploy validate and sf project deploy start set the test level when --tests is provided. The report identifies an existing fix in plugin-deploy-retrieve PR 1650, with code changes still pending. Done means validate selects RunSpecifiedTests implicitly and the request no longer fails with INVALID_OPERATION.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug validated
Before You Submit
  • I'm using the latest version of Salesforce CLI
  • I've searched the existing issues
  • I've run sf doctor to diagnose common issues
Related Issue

No response

Command

sf project deploy validate

Org Type

Production

Did this work before?

Not sure

Last Working Version

No response

Summary

sf project deploy validate overrides the shared testLevelFlag default (src/utils/flags.ts), which sets --test-level to RunSpecifiedTests when --tests is passed, with a static default: TestLevel.RunLocalTests.

As a result, sf project deploy validate --tests MyTest (without --test-level) sent runTests=[MyTest] with testLevel=RunLocalTests, and the Metadata API rejected the request:

INVALID_OPERATION: runTests can only be used with a testLevel of RunSpecifiedTests

This doesn't affect sf project deploy start, which successfully sets test level to RunSpecifiedTests when you pass it --tests. This request is to align this behavior with the validate command.

I created the PR for this fix last month in plugin-deploy-retrieve: https://github.com/salesforcecli/plugin-deploy-retrieve/pull/1650 (Markdown changes were approved but pending code changes)

Repository to Reproduce

No response

Steps to reproduce
  1. Run sf project deploy validate with --tests but no explicit --test-level set.
Expected Result

When --tests are provided to sf project deploy validate, the test level is set to RunSpecifiedTests implicitly.

Actual Result

When --tests are provided to sf project deploy validate, the test level is set to RunAllLocalTestsand the validation fails with an INVALID_OPERATION.

Error Message
INVALID_OPERATION: runTests can only be used with a testLevel of RunSpecifiedTests
System Information
{
  "architecture": "linux-x64",
  "cliVersion": "@salesforce/cli/2.156.8",
  "nodeVersion": "node-v24.22.1",
  "osVersion": "Linux 5.14.0-687.60.1.el9_8.x86_64",
  "rootPath": "/usr/local/sf",
  "shell": "bash",
  "pluginVersions": [
    "@oclif/plugin-autocomplete 4.0.5 (core)",
    "@oclif/plugin-commands 5.0.5 (core)",
    "@oclif/plugin-help 7.0.5 (core)",
    "@oclif/plugin-not-found 4.0.5 (core)",
    "@oclif/plugin-plugins 7.0.10 (core)",
    "@oclif/plugin-search 2.0.5 (core)",
    "@oclif/plugin-update 5.0.8 (core)",
    "@oclif/plugin-version 3.0.6 (core)",
    "@oclif/plugin-warn-if-update-available 4.0.4 (core)",
    "@oclif/plugin-which 4.0.5 (core)",
    "@salesforce/cli 2.156.8 (core)",
    "agent 2.2.3 (core)",
    "apex 4.4.4 (core)",
    "api 2.0.19 (core)",
    "auth 6.0.0 (core)",
    "data 5.1.19 (core)",
    "deploy-retrieve 4.2.18 (core)",
    "info 4.0.18 (core)",
    "limits 4.0.6 (core)",
    "marketplace 2.0.18 (core)",
    "org 7.0.2 (core)",
    "packaging 3.0.14 (core)",
    "schema 4.0.12 (core)",
    "settings 3.0.17 (core)",
    "sobject 2.0.13 (core)",
    "telemetry 4.2.1 (core)",
    "templates 57.4.8 (core)",
    "trust 4.0.23 (core)",
    "user 6.0.3 (core)",
    "apex-code-coverage-transformer 3.1.12 (user)",
    "apextestlist 1.15.4 (user)",
    "sfdx-git-delta 7.6.0 (user)"
  ]
}
Additional Information

See the fix in PR https://github.com/salesforcecli/plugin-deploy-retrieve/pull/1650

Screenshots or Log Files

No response

Vorherrschende Sprache
Keine Sprachdaten
Sterne
575
Forks
80
Ø Merge
5 Std. 58 Min.
Gemergte PRs (30 T.)
4

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus forcedotcom/cli

Alle Issues in forcedotcom/cli

Ähnliche Issues

Weitere Issues zu CLI

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.