gpt4 book ai didi

java - BeforeTest 不会在 标记中的类的每个 Test 方法之前运行

转载 作者:行者123 更新时间:2023-12-01 10:27:29 25 4
gpt4 key购买 nike

进一步查询SO-4310964 ,我浏览了test.org处的注释描述。 。

@BeforeTest: The annotated method will be run before any test method belonging to the classes inside the test tag is run.

现在我们的代码如下:

MyTests.java

public class MyTests {
@BeforeTest
public void preTest(){
//Want to perform some action, suppose clear a Hashmap
System.out.println("Before Test Called!");
}

@Test(groups = {"SanityTests"}, testName = "test1")
public void Test1(){
System.out.println("test1");
}

@Test(groups = {"SanityTests"}, testName = "test2")
public void Test2(){
System.out.println("test2");
}
}

Sanity-Test.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="SanityTests" verbose="1" >
<listeners>
<listener class-name="com.android.MyTestsListener" />
</listeners>

<test name="sanityAndroid">
<classes>
<class name="com.android.MyTests" />
</classes>
</test>
</suite>

注意:我知道 @BeforeMethod 解决了这个问题。但据我了解,链接详细信息是 @BeforeTest[ preTest ] 方法将在任何 @Test[ test1 之前运行, test2 ] 属于 class 的方法里面<test>标签。我哪里出错了?

最佳答案

BeforeTest:带注释的方法将在属于<test>内的类的任何测试方法之前运行。标签已运行

重点关注“在任何测试方法之前”,而不是每个测试方法。

现在,如果测试标签有如下 2 个类:

<test name="sanityAndroid">
<classes>
<class name="com.android.MyTests1" />
<class name="com.android.MyTests2" />
</classes>
</test>

类 MyTest1 有 @Test 方法作为 test1 , test2 和MyTest2 类有 @Test 方法,如 test3 、 test4。

因此,BeforeTest 方法将在属于 <test> 中的类(即 MyTest1、MyTest2)的任何测试方法(即 test1、test2、test3、test4)之前运行。标签。

根据依赖关系,执行变为 BeforeTest -> (test1, test2, test3, test4)。

与此类似的是 AfterTest:带注释的方法将在属于 <test> 内的类的所有测试方法之后运行标签已运行。

关于java - BeforeTest 不会在 <test> 标记中的类的每个 Test 方法之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35285740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com