2013-06-15 4 views
61

Ich versuche zu lernen grunt. Wenn ich npm init ausführe, erhalte ich eine Eingabeaufforderung beim Erstellen einer package.json-Datei, die nach "test command" fragt - ich bin mir nicht sicher, wie ich das verwenden soll oder was es erwartet. Es scheint nicht gut dokumentiert zu sein. Wenn ich es leer lassen, bekomme ich diese in der resultierenden package.json Datei:was macht grunt "test command" auf npm init

"scripts": { 
    //"test": "echo \"Error: no test specified\" && exit 1" 
    }, 

Kann jemand etwas Licht auf, wie ein Testskript einzurichten?

+0

Nun, Testen Sie Ihre Anwendung? – elclanrs

Antwort

42

Zuerst hat die scripts-Eigenschaft in Ihrem Paket.json nichts mit Grunt selbst zu tun. es ist nur ein cli-Befehl von NPM, wich ausgeführt werden, wenn Sie über das

$ npm test 

lesen Sie hier mehr laufen: https://npmjs.org/doc/scripts.html

z.B. wenn Sie Ihre Anwendung mit dem grunt & nodeunit testen konnte man nur hinzufügen, dass an den Scripts-Block

"scripts": { 
    "test": "grunt nodeunit" 
} 

und Ihre nodeunit-Task ausgeführt wird, wenn Sie laufen ‚npm ​​test‘

dies im Grunde macht es einfacher für die kontinuierliche Integration und so weiter, wenn Sie den zugrunde liegenden Testframework ändern.

natürlich Sie ein alias-task hinzufügen könnte, wenn Sie mehr benötigen, bevor Sie getan werden und nach Tests ausgeführt werden (zB Verkettung vor, Bereinigung nach)

+0

In Erweiterung zu diesem können Sie package.json mit mehreren Befehlen im npm-Test tun, wie wenn Sie grunzen und kompilieren möchten, könnten Sie einfach tun - "test": "grunt && kompass kompilieren" –

+0

@SimonPertersen: ich würde nicht tun Es ist so. Es gibt ein Grunt-Kompass-Plugin da draußen. Wenn Sie Tests ausführen und anschließend kompilieren möchten, sollten Sie dieses Plugin verwenden, eine Alias-Aufgabe registrieren, die diese Kette ausführt, und lassen Sie Ihre Alias-Aufgabe von npm test ausführen! – hereandnow78

+0

Es war nur ein Beispiel, dass Sie Tonnen von Befehlen ausführen konnten oder es für andere Dinge verwenden konnten, nur weil ich das auf meiner Hand hatte - aber Alias-Aufgaben sind nur für den Grunz, kann ich auch Terminal-Befehle ausführen? –

0

Wie in der Antwort oben genannten Sie Ihren Test-Befehl ausführen können, wenn Sie geben es bei der Erstellung des Pakets json aus cmd oder durch manuelle Bearbeitung der json-Datei an. Grundsätzlich wird gemäß den npm-Dokumenten das Testskript des bereitgestellten Pakets ausgeführt.

npm docs test

In meinem Fall mit Iam es eine Winkel Anwendung (spec.js Dateien) eine Probe Verwendung in diesem Artikel gefunden wird mit Jasmin testen: -

Getting Started with Node.js and Jasmine