2015-01-09 10 views
7

私は自動化されたテストと分度器を備えた初心者ですから、私はテストでこれを設定する際に問題があります。投射器のスクリーンショットを設定する

guideによると、私がスクリーンショットレポーターの新しいインスタンスを作成するたびに、私はディレクトリパスを渡す必要があります。そう、つまり、の仕様ファイルに新しいインスタンスを作成するたびに、

また、スキップしたテストと失敗したテストのスクリーンショットを取る機能もあります。どこでtakeScreenShotsForSkippedSpecstakeScreenShotsOnlyForFailedSpecsを使用するのですか?私の設定ファイルで?

これは私のonPrepareです:

onPrepare: function() { 
     browser.driver.manage().window().maximize(); 
     global.dvr = browser.driver; 
     global.isAngularSite = function (flag) { 
      browser.ignoreSynchronization = !flag; 
     } 
     jasmine.getEnv().addReporter(new ScreenShotReporter({ 
      baseDirectory: '/tmp/screenshots', 
      takeScreenShotsForSkippedSpecs: true, 
      takeScreenShotsOnlyForFailedSpecs: true 
     })); 

答えて

8

注:jasmine2を使用している場合は、protractor-jasmine2-screenshot-reporterを使用してください。 jasmine1については


私はprotractor-html-screenshot-reporterパッケージを使用して成功裏に使用してきました。これはprotractor-screenshot-reporterに基づいていますが、素晴らしいHTMLレポートも提供します。ここで

私は分度器の設定で持っているものです。

var HtmlReporter = require("protractor-html-screenshot-reporter"); 

exports.config = { 
    ... 

    onPrepare: function() { 
     // screenshot reporter 
     jasmine.getEnv().addReporter(new HtmlReporter({ 
      baseDirectory: "test-results/screenshots" 
     })); 
    }, 

    ... 
} 

テストを実行した後、あなたは(例)を含むHTMLファイルを取得します:

enter image description here

あなたは、「ビューをクリックすることができますブラウザでテストケース固有のスクリーンショットを見ることができます。

+0

@alecxe (c:/ x/y/z/protractor-html-screenshot-reporter)のような全体のパスを送信しようとしていますが、他の方法で設定して送信できます。 – Nick

+0

@alecxe - テストの実行中にjasmine2記者の結果をリアルタイムで見ることができるかどうか知っていますか?私たちの機能テストは30分実行され、すでに実行されたテストの結果を見ることができるprotractor-html-screenshot-reporterパッケージとは異なり、ジャスミン2の記者はテスト全体が完了するまで待つ必要があります。 –

+1

@ ZakirSayedジャスミンがテスト(https://github.com/mlison/protractor-jasmine2-screenshot-reporter/blob/master/index.js#L376)の実行を完了したときに結果をダンプするだけではないかと思います。ありがとう@alecxe。 – alecxe

3

ライブラリ内のreadmeはかなり自明です。ライブラリをインストールしたら、分度器の設定ファイルの分度器のonPrepareにライブラリを追加します。

すなわちprotractorConf.js:次いで

var ScreenShotReporter = require('protractor-screenshot-reporter'); 

exports.config = { 
    // your config here ... 

    onPrepare: function() { 
     // Add a screenshot reporter and store screenshots to `/tmp/screnshots`: 
     jasmine.getEnv().addReporter(new ScreenShotReporter({ 
     baseDirectory: '/tmp/screenshots', 
     takeScreenShotsForSkippedSpecs: true 
     })); 
    } 
} 

protractor protractorConf.jsを分度器を実行します。

+0

私はこれを行いましたが、毎回新しいインスタンスのスクリーンショットレポーターを作成するたびにディレクトリを渡すと言う理由は何ですか?そして、私は 'takeScreenShotsForSkippedSpecs'と' takeScreenShotsOnlyForFailedSpecs'を真にするべきですか? – andrepm

+0

分度器の設定ファイルでインスタンスを作成するのは一度だけです。 'takeScreenShotsForSkippedSpecs'を含むように更新された例 – hankduan

+0

いいえ、まだ何もありません。私はonPrepareで質問を更新しました。 – andrepm

0

は、つい最近私は各ブラウザインスタンススクリーンショットコンソールログのためにキャプチャしprotractor-screenshoter-pluginと呼ばれるブランドの新しいプラグインを発表しました。スナップショットは、がそれぞれまたはspecと予想される場合に、オプションで作成されます。テスト結果を視覚的にチェックして修正するには、美しい角度とブートストラップベースの解析ツールが付属しています。

https://github.com/azachar/protractor-screenshoter-pluginでご覧ください。

また、利用可能なすべてのリストを作成しました。他に見つかった場合は、お気軽に追加してください。alternatives

+0

個人的なプロジェクトについて投稿する前に、[個人用オープンソースライブラリの提供方法](// meta.stackexchange.com/q/229085)をお読みください。これが自分のプロジェクトであることを明らかにしてください。 –

+0

Hey Martijn、あなたの返事をありがとう。私は自分のプロジェクトであることがわかっていると思っていました。免責事項:私はプラグインの作者ですか?乾杯、A。 – Andrej

+0

あなたはこの投稿にそれを公開しましたが、最初の文章だけが異なる別の質問に回答をコピーしました。そこにはあなたが開示しませんでした。もっと問題になるのは、コピーと貼り付けです。あなたのプロジェクトがおそらく適用される可能性のある投稿を探しに行ってはいけません。 –

関連する問題