私が理解したように、メソッドインターセプターを使用して、実行中のメソッドのリストを優先度別に作成できます。しかし、私のプロジェクトでは、各テスト クラスのテスト メソッドに対してメソッド インターセプターが実行されます。
たとえば、メソッド setTestClasses に配置された 2 つのクラスがあります。最初のクラスには 3 つのテスト メソッドがあります (同様の優先度を持つ)。2 番目に 1 つ (優先順位が最も高い) があります。この状況では、メソッド インターセプターが最初に最初のクラスの 3 つのメソッドに対して実行され、次に 2 番目のクラスからのメソッドに対して実行されるため、最も優先度の高いメソッドが最後に実行されます。それが正しいか?
質問する
1630 次
1 に答える
2
Listによってメソッドのリストを提供するメソッドインターセプターは何をしますか。メソッドインターセプターのインターセプトメソッド内で、リストを並べ替えて List オブジェクトを返すことができます。したがって、実行時に Testng は変更されたリストを使用します。元のリスト入力の代わりに、intercept メソッドに入力します。それは、testng でのメソッド インターセプターの使用です。そして、このレベルの優先順位は扱いません。もちろん、メソッドインターセプターを実装することにより、メソッドインターセプターを使用してテストリストを優先順位として並べ替えることができます。
明確にするために、以下のサンプル コードを参照してください。
public class methodSortingListner implements IMethodInterceptor {
public List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context) {
List<IMethodInstance> result = new ArrayList<IMethodInstance>();
for (IMethodInstance method : methods) {
if(<your logic here>)
{
result.add(method);
}
}
return result;
}
これにより、ロジックに合ったリストが提供され、testngによって実行されます
ありがとう、ダルシャナ。
于 2012-09-14T09:09:41.913 に答える