0

PhantomJS を使用してテストを実行しようとするたびに、Dalek からこのエラーが表示されます。ただし、GoogleChrome を使用すると、テストは適切に実行されます。

Running tests

/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273

this.spawned.kill('SIGTERM');

            ^



TypeError: Cannot read property 'kill' of null

  at Object.PhantomJSDriver.kill (/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17)

  at EventEmitter.emit (/Users/user/node_modules/dalekjs/node_modules/eventemitter2/lib/eventemitter2.js:312:17)

  at Object.Dalek._shutdown (/Users/user/node_modules/dalekjs/lib/dalek.js:346:24)

  at emitOne (events.js:77:13)

  at process.emit (events.js:169:7)

  at process._fatalException (node.js:211:26)

問題は何でしょうか?

私は OS X 10.10.5 を使用しており、Dalek と JS テスト自動化の初心者です。ありがとう!

4

3 に答える 3

3

この問題に遭遇し、しばらく読んだ後、次の手順に進みました。

  1. 提案どおりに DalekJS のインストールを行う
  2. npm install phantom phantomjs -g
  3. 実行中のphantomJSインストールを確認してくださいphantomjs -v
  4. (オプション) dalek を再度実行して、失敗することを確認します
  5. 実行中のローカルの phantomjs インストールを検索し、
    find . -name 'phantom*'dalek の phantomjs 依存関係を特定します
  6. 実行中のdalekのphantomjs依存関係を削除します
    rm -fr ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
  7. 最近インストールされたphantomJSを、実行中の削除されたパスにコピーします
    cp -r /usr/local/lib/node_modules/phantomjs ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
  8. dalek を再度実行すると、テストが機能するはずです。

それが役に立てば幸い。よろしくお願いします。

于 2016-05-26T15:24:25.150 に答える
2

dalek-browser-phantomjs に不足しているファイルがあるようです

行方不明folders/files are from dalek-browser-phantomjs/node-modules/phantomjs/lib

phantomjs (npm install phantomjs) だけをインストールすると、 というファイル"location.js"+ というディレクトリが作成され"phantom"ます。location.js ファイルには phantomjs へのパスが含まれており、phantom フォルダーにはバイナリが保持されています。

これら2つが欠落しているため、 this.spawned が null に設定されているというエラーが発生し、 でエラーがスローされますdalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17

要するに:

  1. npm から最新の phantom.js をダウンロードします (npm install phantomjs)
  2. プロジェクトのphantomjsフォルダーに置き換えます。位置:

yourproject/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/node-modules/

これで、すべてのテストが機能するはずです。

于 2016-02-23T17:37:57.680 に答える
1

私は同じ問題に遭遇していました。

問題は、「node_modules」ディレクトリがルート権限で作成されていることにあると思います。

そのため、DalekJS のホームページでは、sudo または root なしで npm install コマンドを実行するように単純に指示されています。最初のコマンドはモジュールをインストールしますが、2 番目のコマンドは、phantomJS を使用するためにディレクトリを構成します。2 番目のコマンド ( npm install dalekjs --save-dev) をルート権限で呼び出すと、問題が発生します。

そう:

  1. パッケージをインストールします。 sudo npm install dalek-cli -g
  2. デフォルトの「package.json」ファイルを使用してディレクトリを構成します -- すでに 1 と 2 を行っているようです
  3. 次に、CLI/ターミナルを開き、package.json と「tests」ディレクトリがあるディレクトリに移動します。
  4. 次の npm コマンドをROOT/SUDO 権限なしで実行します: `npm install dalekjs --save-dev' (Ubuntu でも同様の操作を行う必要がありました)。次に遭遇する問題は、npm caommand がハングすることです

これはOS Xでうまくいきましたが、他のどこにも修正を見つけることができなかったので、投稿しようと思いました...お役に立てば幸いです!

于 2015-10-12T19:13:20.053 に答える