rspec-queue does not fail if there are NameErrors in specs
Nessuno ha ancora preso questa issue.
- Lingua principale
- Ruby
- Stelle
- 240
- Fork
- 36
- Merge medio
- 28m
- PR unite (30g)
- 3
Descrizione
I've just encountered the following behaviour with the rspec runner of ci-queue:
- Modify a spec to reference an uninitialized constant so as to trigger a
NameError, e.g. by referring to a non-existent class:
describe MyNonExistentClass do
...
end
- Run rspec-queue
- rspec-queue exits successfully.
I guessed wrongly that rspec-queue would fail with a non-zero exit code, but it exited with 0.
Bare rspec exits with 1 in the above situation.
I'm wondering if this is intended behaviour - perhaps its needed for retries to work?
The error message output is:
NameError: uninitialized constant MyNonExistentClass
Debugging shows that line 400 is where the 0 exit code is returned, because the NameError causes @world.non_example_failure to be true. Syntax errors appear to have the same result:
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia da ruby/lib/rspec/queue.rb intorno alle righe 387-401 e riproduci il caso NameError usando rspec-queue, confrontando il suo stato di uscita con quello di bare rspec. Traccia in che modo NameError e gli errori di sintassi influiscono sul risultato riportato e determina se il comportamento completato debba restituire uno stato diverso da zero senza interrompere i retry; il lavoro è completato quando sono presenti la copertura di regressione e lo stato di errore corretto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ruby
- Ambito
- cli, testing-qa
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100