我对TestNG注释的操作顺序有一个疑问。。。我有以下代码:
public class AnnotationsTest {
@BeforeSuite(alwaysRun = true)
public static void beforeSuite() {
System.out.println("@BeforeSuite");
}
@BeforeClass(alwaysRun = true)
public static void beforeClass() {
System.out.println("@BeforeClass");
}
@BeforeTest(alwaysRun = true)
public static void beforeTest() {
System.out.println("@BeforeTest");
}
@BeforeMethod(alwaysRun = true)
public static void beforeMethod() {
System.out.println("@BeforeMethod");
}
@AfterSuite(alwaysRun = true)
public static void afterSuite() {
System.out.println("@AfterSuite");
}
@AfterClass(alwaysRun = true)
public static void afterClass() {
System.out.println("@AfterClass");
}
@AfterTest(alwaysRun = true)
public static void afterTest() {
System.out.println("@AfterTest");
}
@AfterMethod(alwaysRun = true)
public static void afterMethod() {
System.out.println("@AfterMethod");
}
@Test
public void test() {
System.out.println("Test");
}
@Test
public void test2() {
System.out.println("Test2");
}
}
我的输出如下:
我的问题是,为什么@AfterTest方法没有在每个@Test注释之后运行?TestNG是否将整个类视为“Test”?似乎是这样,因为@BeforeTest和@AfterTest在@BeforeClass和@AfterClass之外,但我想确保我理解。我假设我可以在这种情况下使用@BeforeMethod和@AfterMethod在这个类的test1和test2之前和之后执行。谢谢!
@AfterMethod
是在@Test
方法之后执行的方法。类似地,@BeforeMethod
是在每个@Test
方法之前执行的方法。
您的输出显示正在运行的方法的优先级。
这里的主要混淆是@测试注释和标记。假设您正在执行testng中的上述代码。xml文件。我们在该文件中编写testng文件标记序列的方式是方法。所以现在每个注释都有意义了。i、 e.@测试用于该类中的方法@BeforeMethod将在每个@测试注释之前执行。和@BeforeTest注释在testng中提到的类之前执行。xml文件,如您所见,标记包含标记。上述问题的缩写是@Test用于menthod@beforethod在每个@Test注释的方法之前执行,而@BeforeTest在标记中提到的所有方法和类之前执行。
我的问题是,为什么在每个@Test注释之后都不运行@AfterTest方法?
正如文件所说
@AfterTest:带注释的方法将在属于内部类的所有测试方法之后运行
和
@BeforeTest:带注释的方法将在属于
问题内容: 我正在尝试在Java项目上运行Dagger 2和Lombok。当然,龙目岛必须首先运行,但是它的确存在取决于机会。起初,我怀疑我可以通过类路径中库jar的相应位置来指定顺序,但是该顺序显然被忽略了。 有没有办法指定它们以某种方式运行的顺序,还是我必须忍受不能合并两个AP的情况? 我制作了一个SSCCE测试用例。 一个简单的&就足以说明问题- 如果在App.java中注释第18行和取消注
我正在尝试在我的Java项目中运行Dagger2和Lombok。当然,龙目岛必须先跑,但它是否真的跑了,似乎要看机会。起初,我怀疑我可以通过库jar在类路径中各自的位置来指定顺序,但这个顺序显然被忽略了。 有没有一种方法可以指定它们运行的顺序,或者我只能忍受不能组合两个AP? 我已经生成了一个SSCCE测试用例。 一个简单的&就足以说明这个问题--如果您在app.java中注释第18行而取消注释第
我将TestNG与Selenium WebDriver一起使用。我正在尝试让“dataprovider”注释在我的Eclipse IDE中工作。但是,在添加下面的注释之后,Eclipse会显示以下错误: 错误: 多谢了。
是否可以从TestNG中按时间顺序获得? 我的测试类和方法都显示得乱七八糟。 我知道按时间顺序排序,但我也希望emailable-report.html中有一个按时间顺序排列的视图
问题内容: 什么时候在方法开始时使用块注释,什么时候使用Javadoc风格的注释? 在Java样式指南的“注释”部分中,我发现了这一点: Java程序可以有两种注释:实现注释和文档注释。实现注释是在C ++中发现的,由,和// 分隔。文档注释(称为“文档注释”)仅适用于Java,并以分隔。可以使用javadoc工具将Doc注释提取到HTML文件中。 实现注释用于注释掉代码或有关特定实现的注释。Do
我将TestNG添加到我的pom.xml中,然后它就被导入了。我可以使用TestNG注释,但是当我试图设置优先级时,它无法识别它。我是不是漏掉了什么?以下是我正在使用的Intellij版本: IntelliJ IDEA 2020.2(社区版) 构建#ic-202.6397.94,构建于2020年7月27日 运行时版本:11.0.7+10-b944.20 amd64 VM:OpenJDK 64位服务