caolan / caolan/nodeunit

Duplicate test.done() breaks nodeunit internals

Aperta
#234 2 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
1.9k
Fork
359
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

test.js (there's no smaller repro than this!):

``` javascript
exports.duplicateDoneBreaksNodeUnit = function(test) {
test.done();
test.done();
};
```

output:

```
OK: 0 assertions (105ms)

...\project\node_modules\nodeunit\lib\core.js:284
if (group.setUp) {
^
TypeError: Cannot read property 'setUp' of undefined
at wrapGroup (...\project\node_modules\nodeunit\lib\core.js:284:14)
at Object.exports.runSuite (...\project\node_modules\nodeunit\lib\core.js:92:13)
at exports.runSuite (...\project\node_modules\nodeunit\lib\core.js:124:21)
at _concat (...\project\node_modules\nodeunit\deps\async.js:513:13)
at async.forEachSeries.iterate (...\project\node_modules\nodeunit\deps\async.js:123:13)
at async.forEachSeries.iterate (...\project\node_modules\nodeunit\deps\async.js:134:25)
at _concat (...\project\node_modules\nodeunit\deps\async.js:515:17)
at exports.test.test.done (...\project\node_modules\nodeunit\lib\types.js:146:17)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Riproduci il problema con l'esempio test.js, quindi esamina test.done in lib/types.js e il percorso wrapGroup in lib/core.js, soprattutto le posizioni dello stack-trace. Traccia ciò che fa il secondo completamento e aggiungi o aggiorna un test di regressione; il lavoro è concluso quando un test.done() duplicato non causa più il crash degli internals di nodeunit.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, node.js
Ambito
testing-qa
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.