2010-12-22 102 views
5

嘿,我的问题很简单,直截了当。我有这种情况。Testng处理测试继承

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

+0

我只注意到所有需要运行所有测试的超类是在调用超类一个测试用例子类中添加一个单一注解的测试。这会导致超类中的所有测试用例都运行。奇怪的? – Afamee 2010-12-22 18:57:16

回答

2

(注意,在使用老式的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的解决方法是合理的,尽管我不确定你为什么要这样做。