2016-08-23 17 views
1

私は一連の自動化されたセレンテストを進めています。私は、私たちのウェブサイト(その有効性のチェック、選択されたものなど)の検索フィルタのチェックを処理するコードを少し持っています。このコードは予想以上に遅く動作しています。私はページオブジェクトパターンを使用してスイートを開発しており、開発中には、メインメソッドからさまざまなビットをデバッグし、ページオブジェクトが正常に機能したらJUnitを使用してテストメソッドを実装します。セレンのメソッドがメインでは高速ですが、JUnitでは遅くなる理由はわかりません

MainとJUnitのオブジェクトを構築する実行時間に大きな時間差があることに気付きました。 Mainでは、オブジェクト構築に約15秒かかります。しかし、JUnitを使って実行すると、オブジェクトの構築には約16分かかります。これは明らかに大きな相違点であり、JUnitの実行時間をmainで実行したときにどのように観測していたのかを知りたいと思っています。私は、何らかのアイデア、または遅れがなぜ生じているのかをより深く理解していただければ幸いです。ありがとう!

構成:ここで のJava 8、 セレン2.53.0、 のJUnit 4.12、 Fiefox 48

は、コードの行が問題である:

// Run in main 

// getFilters() returns new Filters(webDriver); 
Filters filters = resultsPage.getFilters(); 

// Run with JUnit (through IntelliJ) 
filters = resultsPage.getFilters(); 

基本的に唯一の違いは1です)テストクラスのフィルタは静的で、私の@BeforeClassメソッドに設定されています.2)IntelliJで実行されているのではなく、JUnitからIntelliJを介して実行されていますが、実行しているコードと全く同じです両方のp laces(Filtersコンストラクタ)。時差が発生しています。

+0

これは奇妙なことに聞こえますが、ソースコードやシステムにアクセスすることができないと何か言い難いです。私はあなたのコードが**本当に**同じかどうかを最初に確認します。 **同じ**のことをしています。まあ、明らかにそうではありませんが、私はユニットテストが何をしているのかを調べることから始めます。 – GhostCat

+0

@GhostCat - 私は詳細を与えるために質問を編集しました。基本的には、呼び出され実行されているオブジェクトのコンストラクタと同じコードであることと確信しています。 – Tyler

答えて

0

まあ、それは私の部分で馬鹿でした。テストクラスで私のWebDriverを誤って設定していましたが、私が期待した以上にwaitを投げていました。

関連する問題