2016-05-06 14 views
1

Ich habe ein Ember CLI-Projekt, das ich mit Maven aufbaue, und ich versuche herauszufinden, wie man die Tests ohne vorherige Annahme von PhantomJS global laufen lassen kann Eingerichtet. Ich benutze das Frontend-Maven-Plugin, um bestimmte Versionen von Node und Npm im laufenden Betrieb zu installieren, um npm install, bower install und ember build aufzurufen; das alles funktioniert schon. Was ich jetzt versuche, ist auch Call-Ember-Test, und die Maven-Build fehlschlagen, wenn die Tests fehlschlagen. Momentan funktioniert das so lange wie "phantomjs" im Pfad der Maschine ist, auf der die Maven Build läuft; Viele Entwickler verwenden diesen Build jedoch nicht als Ember-Entwickler und hätten Phantomjs nicht im Pfad. Ich möchte auch nicht sicherstellen müssen, Phantomjs global auf meinen CI-Servern zu installieren.Führen Sie "Glut-Test" ohne PhantomJS global installiert

Gibt es eine Möglichkeit, PhantomJS als eine Abhängigkeit in package.json anzugeben und testem (der Standard-Test-Runner für ember) die Installation in node_modules aufzuheben? Kann ich den Pfad zu PhantomJS in einer Weise bereitstellen, die in den Dokumenten nicht offensichtlich ist? Oder muss ich nur mit einer versteckten manuellen Abhängigkeit leben, wenn ich Tests durchführen will?

Antwort

3

Ja, Sie können genau das tun.

Zuerst installieren phantomjs-prebuilt als Entwickler Abhängigkeit:

npm install --save-dev phantomjs-prebuilt 

Dann ändern Sie Ihre package.json Skripte die projekt lokalen node_modules auf Ihrem Weg vor dem Ausführen von Tests hinzuzufügen:

"scripts": { 
     "build": "ember build", 
     "start": "ember server", 
     "test": "PATH=$PATH:./node_modules/.bin ember test" 
    }, 

Führen Sie dann Ihre Tests wie gewohnt

Dadurch wird Ihre projektlokale Version von phantomjs gestartet, um die Tests auszuführen.

+0

Das hat perfekt funktioniert, war genau das, was ich brauchte - danke !! –

Verwandte Themen