2017-03-23 2 views
0

Kurzgeschichte, läuft meine Jasmine-Node-Tests fehlschlägt eine Behauptung der Gleichheit auf identischen Arrays, gibt dann einen NPM-Fehler ELIFECYCLE.Jasmin-Knoten einen bestandenen Test, mit Npm Fehlercode ELIFECYCLE

Dies geschieht bei ein paar Tests, aber im Moment habe ich nur einen laufen.

Hier ist das Modul; https://github.com/Thomas-Elder/hobby.node.happening/blob/mgmt/server/mgmt.js

Hier ist die Spezifikation; https://github.com/Thomas-Elder/hobby.node.happening/blob/mgmt/spec/server/mgmt_spec.js

Der einzige derzeit ausgeführte Test ist der erste in der Datei mgmt_spec.js.

Hier ist die npm-debug.log für den Testlauf;

0 info it worked if it ends with ok 
1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\node.exe', 
1 verbose cli 'C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 
1 verbose cli 'run', 
1 verbose cli 'test' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose run-script [ 'pretest', 'test', 'posttest' ] 
5 info pretest [email protected] 
6 info test [email protected] 
7 verbose unsafe-perm in lifecycle true 
8 info [email protected] Failed to exec test script 
9 verbose stack Error: [email protected] test: `jasmine-node --verbose --captureExceptions --forceexit ./spec` 
9 verbose stack Exit status 1 
9 verbose stack  at EventEmitter.<anonymous> (C:\Program Files (x86)\nodejs\node_modules\npm\lib\utils\lifecycle.js:214:16) 
9 verbose stack  at emitTwo (events.js:87:13) 
9 verbose stack  at EventEmitter.emit (events.js:172:7) 
9 verbose stack  at ChildProcess.<anonymous> (C:\Program Files (x86)\nodejs\node_modules\npm\lib\utils\spawn.js:24:14) 
9 verbose stack  at emitTwo (events.js:87:13) 
9 verbose stack  at ChildProcess.emit (events.js:172:7) 
9 verbose stack  at maybeClose (internal/child_process.js:818:16) 
9 verbose stack  at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) 
10 verbose pkgid [email protected] 
11 verbose cwd E:\js\apps\happening 
12 error Windows_NT 10.0.14393 
13 error argv "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "test" 
14 error node v4.2.4 
15 error npm v2.14.12 
16 error code ELIFECYCLE 
17 error [email protected] test: `jasmine-node --verbose --captureExceptions --forceexit ./spec` 
17 error Exit status 1 
18 error Failed at the [email protected] test script 'jasmine-node --verbose --captureExceptions --forceexit ./spec'. 
18 error This is most likely a problem with the happening package, 
18 error not with npm itself. 
18 error Tell the author that this fails on your system: 
18 error  jasmine-node --verbose --captureExceptions --forceexit ./spec 
18 error You can get their info via: 
18 error  npm owner ls happening 
18 error There is likely additional logging output above. 
19 verbose exit [ 1, true ] 

Die Spezifikation läuft, und rät dann, dass eine Behauptung ist fehlgeschlagen, aber die Botschaft ist:

Expected 
[ { id : '123', name : 'Tom' }, 
    { id : '456', name : 'Tim' }, 
    { id : '789', name : 'Tum' } ] 

to equal 
[ { id : '123', name : 'Tom' }, 
    { id : '456', name : 'Tim' }, 
    { id : '789', name : 'Tum' } ]. 

welche nicht scheitern ... sie sind gleich Arrays, nicht wahr?

Nach der Fehlermeldung gibt es den NPM-Fehler, dessen Details in der Datei npm-debug.log wiederholt werden.

Irgendwelche Hinweise, was hier passiert?

Antwort

0

Ok, also habe ich das etwas sortiert. Das Problem, das ich hatte, hatte nichts mit dem NPM-Fehler zu tun, den ich sah. Der Grund für das Fehlschlagen der Spezifikation war, dass ich Objektliterale mit Objekten verglichen habe, die mit einem Konstruktor erstellt wurden.

Dies wurde offensichtlich, als ich schließlich meinen Spec Runner zu Jasmine (von Jasmine-Node) aktualisierte. Jasmins Logging-Ausgabe war;

Expected 
[ ({ id: '123', name: 'Tom' }), ({ id: '456', name: 'Tim' }), ({ id:'789', name: 'Tum' }) ] 
to equal 
[ Object({ id: '123', name: 'Tom' }), Object({ id: '456', name: 'Tim' }), Object({ id: '789', name: 'Tum' }) ] 

Das hatte mich auf der Suche, wie ich die spec eingerichtet hatte, und nach der Spezifikation zur Änderung (Repo-Link siehe oben), es übergeben.

Der ELIFECYCLE-Fehler scheint nur dann zu passieren, wenn eine Spezifikation ausfällt.

Verwandte Themen