java - 处理测试继承的Testng

标签 java eclipse selenium testng

我在一个项目中有 (Test-A) 完整注释的 testng 测试。注意:此测试运行成功。然后,我在扩展(Test-A) 的不同项目中进行了另一个testng 测试(Test-B)。这个新的 (Test-B) 没有任何注释,因为它扩展了一个有注释的类。我的期望是,当您运行此测试(Test-B) 时,它应该运行父类(super class)中的测试用例以及其中定义的测试用例,这是面向对象的方式。问题是 testng 甚至不将其识别为测试,因为其中没有注释。我猜 testng 注释处理不考虑父类(super class)的注释??

最佳答案

(注意,这里使用普通的旧 JUnit 4,而不是 TestNG)

如果父类在同一个项目中,Eclipse 确实会在类层次结构中查找 @Test 注释。以下示例对我有用:

public class A {
    @Test public void a() {

    }
}

public class B extends A {

}

B 作为 JUnit 测试运行时,它会执行 a() 并通过。

然后我创建了两个 Eclipse 项目,测试 A 和测试 B。我将项目 B 链接到项目 A 并像您一样重复上述步骤,在项目 A 中使用类 A 等。现在,将类 B 作为单元测试运行说“未找到 JUnit 测试”。然后,在 B 类中添加一个 @Test 即可解决问题。

因此,我们可以推断,Eclipse在查找测试用例时并没有超出当前项目的范围。我认为您将单个 @Test 添加到您的类(class)的解决方法是合理的,尽管我不确定您为什么要这样做。

关于java - 处理测试继承的Testng,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512528/

相关文章:

eclipse - 如何在mac上打开多个Spring STS实例

java - 如何在 Eclipse 中设置可运行 jar 的目标版本

java - 如何在 JSF2.0 中声明默认的 .xhtml 页面

java - 从 Maven 导入 Selenium Webdriver 到 Intellij IDEA

java - 哪种类型的定位器(如 ID、xpath、类名等)适合在 selenium 自动化中使用

xcode - iphone模拟器可以下载浏览器吗

java - 在网格布局中垂直和水平缩放图像

java - Android 版 Google map API,更快/更有效地检索基于位置的信息?

java - 'springSecurityFilterChain' 抛出 java.lang.NullPointerException

java - 如何更改 IntelliJ IDEA 的快照 channel