2016-05-06 4 views
1

私はMavenを使用してビルドしているEmber CLIプロジェクトを持っています.MavenがPhantomJSをグローバルに持つことを前提とせずにテストを実行できるようにする方法インストールされます。私はfrontend-maven-pluginを使用して、特定のバージョンのノードとnpmをオンザフライでインストールし、npm install、bower install、ember buildを呼び出します。これはすでにすべて動作しています。私が今しようとしていることは、emberテストを呼び出すことであり、テストが失敗した場合は、mavenビルドに失敗します。現在、これは、 "phantomjs"がMavenビルドを実行しているマシンのパスにある限り動作します。しかし、多くの開発者はember開発者ではなく、パスにファントムを持たないこのビルドを使用します。また、CIサーバにphantomjをグローバルにインストールする必要もありません。PhantomJSがグローバルにインストールされていない状態で "ember test"を実行します

package.jsonの依存関係としてPhantomJSを指定する方法はありますか?testem(emberのデフォルトテストランナー)はnode_modulesでインストールを受け取りますか? PhantomJSへのパスをtestemに与えることができますか?それはドキュメントからは分かりません。または、テストを実行したい場合は、隠された手動依存関係で暮らす必要がありますか?

答えて

3

はい、あなたはそれを正確に行うことができます。

まず、DEVの依存関係としてphantomjs-prebuiltをインストール:

npm install --save-dev phantomjs-prebuilt 

その後、テストを実行する前に、あなたのパスにプロジェクト・ローカルnode_modulesを追加するために、あなたのpackage.jsonスクリプトを変更:

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

通常の方法でテストを実行してください。

npm install && bower install && npm test 

これは、テストを実行するphantomjsのプロジェクト - ローカルバージョンを起動します。

+0

これは完璧に機能し、私が必要としていたものでした。 –

関連する問題