test_runner: `node --test` silently drops options or args in certain cases
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.3k
- Merge moyen
- 4 j 2 h
- PR mergées (30 j)
- 283
Description
Version
v26.3.0
Subsystem
test_runner
What steps will reproduce the bug?
Either of the following:
node --test no-tests-here "spec/*.test.js"
node --test "spec/*.test.js" --test-reporter tap
What is the expected behavior? Why is that the expected behavior?
In the first case, since positional args are taken as a path or glob for tests to be run, each arg should result in at least one test found and successfully run, else a warning or error should be printed, e.g.:
No tests were found at "no-tests-here".
In the second case, ideally the CLI parsing is changed to allow options to come after positional args (see also #51384 and nodejs/test-runner#13), and --test-reporter tap results in the TAP test reporter being used. If that is not possible, then warnings or errors like the first case:
No tests were found at "--test-reporter".
No tests were found at "tap".
The reason for the warnings or errors is that when a positional arg does not resolve to a single test file, it is most likely a user mistake/typo, or as in the second case, the natural but incorrect assumption that options can be specified at the end.
What do you see instead?
"no-tests-here" in the first case and "--test-reporter tap" in the second are dropped without warning or error.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire les deux cas avec les commandes node --test indiquées dans l’issue et suivez le traitement des arguments de la CLI test_runner. C’est terminé lorsque les chemins positionnels ne sont pas ignorés silencieusement : les chemins sans correspondance produisent un avertissement ou une erreur, et l’option reporter est soit acceptée après les arguments positionnels, soit signalée clairement comme invalide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, node.js
- Domaine
- cli, testing-qa
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 58/100