web-dev-qa-db-ja.com

TestNGのBeforeTestとBeforeMethodの違いは何ですか

両方のアノテーションはtestNGの@testの前に実行され、2つのアノテーションの違いは何ですか。

10
Sameer Dev

以下のコードと出力を確認してください

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
10
qaautodev

@ 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.");
    }
}

Reference O/P Example

8
Ishita Shah

@BeforeTest:テストメソッドの前に1回だけ呼び出されます。@Testで注釈されたメソッドの数に関係なく、1回だけ呼び出されます。

@BeforeMethodこれは、@Testアノテーションが付けられたすべてのメソッドに対して呼び出されます。10個の@Testメソッドがある場合、10回呼び出されます。

BeforeClassBeforeTestの違いを知るには、答えを参照してください https://stackoverflow.com/a/57052272/19739

5
Melad Basilius

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

1
nandal

@BeforeTest testng.xmlファイルの<test>タグに含まれるテストメソッドの前にセットアップメソッドを実行します。 @BeforeMethod @Testとして注釈が付けられたテストメソッドの前にセットアップメソッドを実行します。

0

@BeforeTestは、テストメソッドの前に1回だけ実行されます。 testNG.xmlファイルの@Testタグの一部である<test>注釈付きテストメソッドを実行する前に、メソッドが実行されます。 @BeforeMethodは、@Testアノテーションが付けられたすべてのメソッドの前に実行されます。

0
Sonal

@BeforeTestは、統合テストを実行している場合、Beanが注入される前に実行されます。 @BeforeMethodこれは、Beanの注入後に実行されます。なぜこのように設計されたのかはわかりません。

0
nanachimi