2016-11-14 3 views
0

私のテストでは、すべてのシナリオのスクリーンショットをすべてのブラウザで取りたいと思っています。テスト中のインターン環境にアクセスしてブラウザ名を取得する

現在、私はfirefoxでテストを行っていますが、chromeでは失敗しています。そのため、すばやくエラーを表示するための良い方法が必要です。スクリーンショットファイル名の前にブラウザ名を付加しています。

ケイパビリティオブジェクトにはthis.remote.session.capabilitiesでアクセスし、browserNameプロパティを取得できます。私はそうのように、これを使用しています:

function saveScreenshot(name, screenshot) { 
    var dir = './screenshots'; 
    if (!fs.existsSync(dir)){ 
     fs.mkdirSync(dir); 
    } 
    fs.writeFileSync(dir + '/' + browser + '_' + name, screenshot) 
}; 

と相まって

bdd.before(function(){ 
     this.remote.setFindTimeout(5000); 
     browser = this.remote.session.capabilities.browserName; 
    }); 

クロームとFirefox上で実行している場合しかし、私は唯一のfirefox_screenshotname.pngという名前のスクリーンショットを取得していない - 何のクロムを!

これを達成する方法はありますか?

答えて

0

自分自身の質問に答える - 間違った場所に自分の「ブラウザ」変数を定義していたことが判明しました。 https://theintern.github.io/intern/#interface-objectによれば、テストによって修正(または私のケースでは使用)される変数は、テストスイートの関数で宣言する必要があります。

define(function (require) { 
    var bdd = require('intern!bdd'); 
    var expect = require('intern/chai!expect'); 
    var wiremock = require('./wiremock'); 
    var fs = require('intern/dojo/node!fs'); 

    // var browser <- doesn't work here! 

    bdd.describe('some thing', function() { 

     var browser; // Works here! 

     bdd.before(function(){ 
      this.remote.setFindTimeout(5000); 
      browser = this.remote.session.capabilities.browserName; 
     }); 

     bdd.it('should search for a postcode', function() { 
      return this.remote 
       .get(require.toUrl('index.html')) 
       .findAllByCssSelector('.thing') 
       .getVisibleText() 
       .then(function (text) { 
        expect(text).to.contain('Some stuff'); 
       }) 
       .takeScreenshot() 
       .then(function (screenshot) { 
        saveScreenshot("thing.png", screenshot); 
       }); 
     }); 

     function saveScreenshot(name, screenshot) { 
      var dir = './screenshots'; 
      if (!fs.existsSync(dir)){ 
       fs.mkdirSync(dir); 
      } 
      fs.writeFileSync(dir + '/' + browser + '_' + name, screenshot) 
     }; 
    }); 
}); 
関連する問題