2017-06-13 8 views
5

反応し、packages.jsonはいつもの容疑者を持っていますセレンE2Eに初心者でプロジェクトを反応させるの私は定型を作成し

  • 事前開始開始
  • リスト
  • テスト
  • など

私はE2EフレームワークにSeleniumを使用しています。私は次のテストを持っている:

it('should launch a browser',() => { 

    const By = webDriver.By; 
    let driver = new webDriver.Builder() 
     .forBrowser('chrome') 
     .build(); 

    // verify Continue button exist on page 
    driver.navigate().to('http://localhost:3000').then(() => driver.findElement(By.id('submitButton')).getAttribute('value')) 
     .then(buttonValue => expect(buttonValue).toEqual('Continue')); 

    }); 

私はnpm startを行う場合は、自分のサイトが起動し、私のE2Eが追加Chromeブラウザを起動し、私の実行中のサイトに移動しますlocalhost:3000。テストは成功します。

私の質問は、私のサイトを横に並べる必要なく、別々にE2Eを実行するにはnpm startです。

私はReactとSeleniumの初心者ですが、この投稿について多くの情報が不足している場合は、事前にお詫び申し上げます。

+0

ねえ、パックマン!私はあなたには解決策があると思いますが、** package.json **の内容で質問を更新する必要があります。これは 'packages.jsonには通常の疑いがあります:プレスタートスタートリストテストなど...'それを切ります。また、Mochaを除いて、他のテストフレームワークを使用してSelenium JSバインディングを提供していますか? – iamdanchiv

+1

まあ、あなたのサイトはどこかに走っていなければなりません。 localhost上で実行されない場合は、別の場所で実行する必要があります。そうでなければ、何もテストする必要はありません。 – Sulthan

+0

パックマン、私の答えを読んだり、コメントを提案してもらえますか?まだこの問題をデバッグしたいですか?あなたの恩恵はすでに猶予期間に入っているので、措置を取らなければ失われます。 – iamdanchiv

答えて

5

質問の情報をNPM "scripts"オブジェクトで更新する時間が見つかりませんでしたので、暗闇の中で撮影しようとします。

まず第一に、原因あなたの言葉遣いに、私はあなたの質問二つの方法を解釈することができます。

  • あなたはE2Eテストを実行したい別途、W/Oサーバー実行中(これはnpm startによって開始されます)。
  • B)あなたが起動からサーバーを起動することなく、npm startを経由してあなたのE2Eテストを実行したいです。

あなたはモカを使用していると見て、個別にスクリプトを実行したい場合は、あなたが経由でそれらをトリガすることができます。./node_modules/.bin/mocha <pathToTests>/<testFile>

あなたがnpm testスクリプトを使用しているあなたの質問に記載されているので、今、そしてそれがあなたのE2Eは実行をテスト的に結合するための最良のスイッチのようになります。

はpackage.json(スクリプトオブジェクト) :

"scripts": { 
    "test": "mocha --reporter spec <pathToTests>/<testFile>", 
    "start": "node <yourServerName>.js" 
}, 

NPMが内部のバイナリを探しますのでmocha <pathToTests>/<testFile>は、./node_modules/.bin/mocha <pathToTests>/<testFile>と等価であることに注意してくださいとMochaがインストールされたとき、それはこのディレクトリにそれをインストールしました。

注:多くのパッケージがモカに似NPMから呼び出すことができるスクリプトを宣言し、bin、または.binセクションを持っています。他のバイナリを見つけたい場合は、ls node_modules/.binを発行してください。このケアで


B。)、私はあなたの問題は、パッケージの内容に基づいて、いくつかのスクリプトの値をデフォルトにNPMが原因かもしれないと思います。具体的には、パッケージのルートにserver.jsファイルがある場合、npmは開始コマンドのデフォルト値をserver.jsに設定します。その後、あなたのpackage.json

あなたが始めているのであれば、あなたのE2Eは、この("start": "mocha <pathToTests>/<testFile>")を有する、npm start経由をテストし、あなたのパッケージのルートでserver.jsファイルがあり、NPMますstartコマンドのデフォルトはnode server.jsです。

この場合、サーバースクリプトをプロジェクトの別の場所に移動するか、使用しているスイッチをE2Eテストsee section b.))のトリガーに変更することができます。

これはあなたの問題を解決してくれると期待していますが、そのことを楽しみにしていますpackage.json"scripts"オブジェクトなので、実際に何が起きているのかが分かります。 :)

乾杯!

関連する問題