2017-12-19 16 views
1

私はIntern(3)を使用して動作するいくつかの機能テストを実施しており、テストの最後のステップは、リモートブラウザ上でlocalStorageをクリアし、ウィンドウハンドルをすぐに保存して元のウィンドウに戻したり、テストが終了する前にスイッチバックされます(前のテストが別のテストで終了した場合、クローズドウィンドウで実行しようとしているため、その後のテストは失敗しません)。しかし、いくつかのchaijsアサーションが.then()で失敗すると、最後のクリーンアップコードはスキップされます。いくつかのアサーションが失敗しても実行される機能テストのクリーンアップを行う良い方法はありますか?Internの機能テストに失敗した後のクリーンアップ方法

this.leadfoot.remote 
    .get(require.toUrl(url)) 
    .execute(function() { return document.querySelector('#welcome').textContent}) 
    .then(welcome => { 
     assert.equal(welcome, 'hello world', 'properly greeted'); 
    }) 
    .execute(function() { 
     localStorage.clear(); 
    }); 

アサーションは、それが最後に決して明確なのlocalStorageをだろうと実行し、次のテストはのlocalStorageが空であることを期待していた場合、それはあまりにも失敗します失敗した場合。機能テスト後にクリーンアップする方がいいですか?

答えて

3

afterEachメソッドを使用してください。

afterEach: function() { 
     var command = this.remote; 
     if(intern.variables.currentCase && !intern.variables.currentCase.hasPassed) { 
      command = command.execute(function() { 
       localStorage.clear(); 
      }); 
     } 
     return command; 
    }, 

を、地域Storage.clear()は、テストが失敗した場合にのみ実行されます:私たちのプロジェクトで

afterEach() { 
    return this.remote 
     .execute(function() { 
      localStorage.clear(); 
     }); 
}, 

'my test'() { 
    return this.remote 
     .get(...) 
     .execute(...) 
     .then(welcome => { 
      assert.equal(welcome, ...); 
     }); 
} 
0

我々はこのようにそれを行う

関連する問題