TestNGシリーズ-第5章試験方法、試験クラスと試験グループ(続き3)-依存関係
7依存関係(dependencies)
テスト方法は、次のような順序で実行する必要がある場合があります.
より多くのテストを実行する場合は、数を決定するテストメソッドが完了し、に成功したことを確認する必要があります.
いくつかの方法を初期化する必要がある場合、これらの初期化方法も試験方法である.
7.1依存注記
@Test注記のプロパティの使用
dependsOnGroupの
dependsOnMethods.この場合、2つの注釈があります.
ハード依存(Hadr dependencies):すべての依存メソッドが正常に実行される必要があります.少なくとも1つの依存メソッドが失敗した場合、テストメソッドは呼び出されず、テストレポートにSKIPとマークされます.
ソフト依存(soft dependecies):依存するテストメソッドが実行に失敗した場合でも、テストメソッドは実行されます.ソフト依存は@Testの属性設定always=runで実現する.
ハード依存例:
method 1()メソッドはserverStartedOkメソッドに依存して実行され、serverStartedOkが常に最初に実行されることを保証します.
テスト方法は、グループ化の実行にも依存します.
この例では、method 1()は、任意の付和正規表現「init.*」に依存するパケットを宣言する.
serverStartedOkと
InitEnvironmentはmethod 1メソッドを常に優先して実行します.
注意:同じグループ内のテスト方法では、実行順序が毎回同じであることは保証されません.
ハード依存構成(alwayRun=false、デフォルト).
dependsOnGroups
および
dependsOnMethods
パラメータとして正規表現を受け入れます.について
dependsOnMethodsは、依存メソッドにいくつかのリロード(overloaded)バージョンがある場合、すべてのリロードメソッドが呼び出されます.いずれかのリロードメソッドを呼び出したい場合は、dependsOnGroupを使用します.
より多くの依存方法についてはtを参照してください.
his article
,
デフォルトでは、依存メソッドはクラスによってグループ化されます.たとえば、メソッドb()依存メソッドa()には、このクラスのインスタンスがあります.これらのインスタンスにこれらのメソッドが含まれている場合、呼び出しメソッドは次のようになります.
a(1)a(2)b(2)b(2)
TestNGは、すべてのインスタンスのメソッドaを実行してからbを実行します.
この動作は、異なる国のブラウザに対するチェックインとチェックアウトをテストするなど、場合によっては望ましい場合があります.次の実行方法が必要です.
この順序ではxmlのプロパティを使用できます.
group-by-instances
,この属性はラベルとの両方で有効である.
7.2 xmlでの依存関係の設定
ラベルを使用<
dependencies>
プロパティには、スペースで区切られたリストを含めることができます.
テスト方法は、次のような順序で実行する必要がある場合があります.
より多くのテストを実行する場合は、数を決定するテストメソッドが完了し、に成功したことを確認する必要があります.
いくつかの方法を初期化する必要がある場合、これらの初期化方法も試験方法である.
7.1依存注記
@Test注記のプロパティの使用
dependsOnGroupの
dependsOnMethods.この場合、2つの注釈があります.
ハード依存(Hadr dependencies):すべての依存メソッドが正常に実行される必要があります.少なくとも1つの依存メソッドが失敗した場合、テストメソッドは呼び出されず、テストレポートにSKIPとマークされます.
ソフト依存(soft dependecies):依存するテストメソッドが実行に失敗した場合でも、テストメソッドは実行されます.ソフト依存は@Testの属性設定always=runで実現する.
ハード依存例:
@Test
public void serverStartedOk() {}
@Test(dependsOnMethods = { "serverStartedOk" })
public void method1() {}
method 1()メソッドはserverStartedOkメソッドに依存して実行され、serverStartedOkが常に最初に実行されることを保証します.
テスト方法は、グループ化の実行にも依存します.
@Test(groups = { "init" })
public void serverStartedOk() {}
@Test(groups = { "init" })
public void initEnvironment() {}
@Test(dependsOnGroups = { "init.*" })
public void method1() {}
この例では、method 1()は、任意の付和正規表現「init.*」に依存するパケットを宣言する.
serverStartedOkと
InitEnvironmentはmethod 1メソッドを常に優先して実行します.
注意:同じグループ内のテスト方法では、実行順序が毎回同じであることは保証されません.
ハード依存構成(alwayRun=false、デフォルト).
dependsOnGroups
および
dependsOnMethods
パラメータとして正規表現を受け入れます.について
dependsOnMethodsは、依存メソッドにいくつかのリロード(overloaded)バージョンがある場合、すべてのリロードメソッドが呼び出されます.いずれかのリロードメソッドを呼び出したい場合は、dependsOnGroupを使用します.
より多くの依存方法についてはtを参照してください.
his article
,
デフォルトでは、依存メソッドはクラスによってグループ化されます.たとえば、メソッドb()依存メソッドa()には、このクラスのインスタンスがあります.これらのインスタンスにこれらのメソッドが含まれている場合、呼び出しメソッドは次のようになります.
a(1)a(2)b(2)b(2)
TestNGは、すべてのインスタンスのメソッドaを実行してからbを実行します.
この動作は、異なる国のブラウザに対するチェックインとチェックアウトをテストするなど、場合によっては望ましい場合があります.次の実行方法が必要です.
signIn("us")signOut("us")signIn("uk")signOut("uk")
この順序ではxmlのプロパティを使用できます.
group-by-instances
,この属性はラベル
<suite name="Factory" group-by-instances="true">or <test name="Factory" group-by-instances="true">
7.2 xmlでの依存関係の設定
ラベルを使用<
dependencies>
<?xml version="1.0" encoding="utf-8"?>
<test name="My suite">
<groups>
<dependencies>
<group name="c" depends-on="a b"/>
<group name="z" depends-on="c"/>
</dependencies>
</groups>
</test>