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

Ouverte
#3,679 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
javascript, node.js
Domaine
cli, testing

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Aucune donnée de langage
Étoiles
575
Forks
80
Merge moyen
5 h 30 min
PR mergées (30 j)
5

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de forcedotcom/cli

Toutes les issues de forcedotcom/cli

Issues similaires

Plus d'issues CLI

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.