両方のアノテーションはtestNGの@testの前に実行され、2つのアノテーションの違いは何ですか。
以下のコードと出力を確認してください
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class Test_BeforeTestAndBeforeMethod {
@BeforeTest
public void beforeTest()
{
System.out.println("beforeTest");
}
@BeforeMethod
public void beforeMethod()
{
System.out.println("\nbeforeMethod");
}
@Test
public void firstTest()
{
System.out.println("firstTest");
}
@Test
public void secondTest()
{
System.out.println("secondTest");
}
@Test
public void thirdTest()
{
System.out.println("thirdTest");
}
}
出力:
beforeTest
beforeMethod
firstTest
beforeMethod
secondTest
beforeMethod
thirdTest
@ BeforeTest: Testメソッドの前に1回だけを呼び出します。
@ BeforeMethod呼び出しますテストの前に毎回メソッド。
例:
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class Test_BeforeTestAndBeforeMethod {
@BeforeTest
public void beforeTestDemo()
{
System.out.println("This is before test calling.");
}
@BeforeClass
public void beforeClassDemo()
{
System.out.println("This is before class calling.");
}
@BeforeMethod
public void beforeMethodDemo()
{
System.out.println("This is before method calling.");
}
@Test
public void testADemo()
{
System.out.println("This is Test1 calling.");
}
@Test
public void testBDemo()
{
System.out.println("This is Test2 calling.");
}
@Test
public void testCDemo()
{
System.out.println("This is Test2 calling.");
}
@AfterMethod
public void afterMethodDemo()
{
System.out.println("This is after method calling.");
}
@AfterClass
public void afterClassDemo()
{
System.out.println("This is after class calling.");
}
@AfterTest
public void afterTestDemo()
{
System.out.println("This is after test calling.");
}
}
@BeforeTest
:テストメソッドの前に1回だけ呼び出されます。@Test
で注釈されたメソッドの数に関係なく、1回だけ呼び出されます。
@BeforeMethod
これは、@Test
アノテーションが付けられたすべてのメソッドに対して呼び出されます。10個の@Test
メソッドがある場合、10回呼び出されます。
BeforeClass
とBeforeTest
の違いを知るには、答えを参照してください https://stackoverflow.com/a/57052272/19739
TestNGで
@ BeforeMethod-BeforeMethodは、すべてのテストメソッドの前に実行されます。 @Testアノテーションを使用するすべてのメソッド。 @BeforeMethodは、Javaクラスで定義されたテストで動作します。
@ BeforeTest-BeforeTestは、testng.xmlファイルで指定されたタグの前でのみ実行されます。 @BeforeTestはtestng.xmlで定義されたテストで動作します
参照: https://examples.javacodegeeks.com/enterprise-Java/testng/testng-beforetest-example/ および http://howtesting.blogspot.com/2012/12 /difference-between-beforetest-and.html
@BeforeTest testng.xmlファイルの<test>タグに含まれるテストメソッドの前にセットアップメソッドを実行します。 @BeforeMethod @Testとして注釈が付けられたテストメソッドの前にセットアップメソッドを実行します。
@BeforeTest
は、テストメソッドの前に1回だけ実行されます。 testNG.xmlファイルの@Test
タグの一部である<test>
注釈付きテストメソッドを実行する前に、メソッドが実行されます。 @BeforeMethod
は、@Test
アノテーションが付けられたすべてのメソッドの前に実行されます。
@BeforeTest
は、統合テストを実行している場合、Beanが注入される前に実行されます。 @BeforeMethod
これは、Beanの注入後に実行されます。なぜこのように設計されたのかはわかりません。