我正在为我的测试用例集创建自定义注释,我只想选择那些符合我的注释标准的方法,并动态创建测试套件。
有没有办法将方法添加到测试套件而不是整个类?
像
这样的东西 @Suite.Suitemethods({
Support.method1(),
Test2.method2(),
ServiceName.method3(),
ServiceName2.method4()
})
答案 0 :(得分:3)
使用类别功能。
样品: 申报测试诉讼:
interface Cate1{};
@RunWith(Categories.class)
@IncludeCategory(Cate1.class)//Only allow @Category(Cate1.class)
@SuiteClasses({Support.class,
Test2.class,
ServiceName.class,...})
class MyTest{}
测试用例,只运行m1():
class Support{
@Test
@Category(Cate1.class)
public void m1(){}
@Test
public void m2(){}
}
答案 1 :(得分:0)
Class A{
@Test
@CustomAnnotation(attrib1 = "foo"; attrib2 = "moo"; attrib3 = "poo")
void methodA(){ }
@Test
@CustomAnnotation(attrib1 = "blahblah"; attrib2 = "flahflah"; attrib3 = "klahklah")
void methodB(){ }
@Test
@CustomAnnotation(attrib1 = "foo"; attrib2 = "flahflah"; attrib3 = "poo")
void methodC(){ }
}
现在,使用reflctions,我的注释处理类将返回一个符合我标准的方法的SET / LIST(比如attrib1 =“foo”)。 Methid A和方法C将满足。现在我需要在运行时将这些添加到测试套件中并运行它。
如何将它们添加到测试套件中? 您的建议显然是编译时解决方案。 用户想要运行时解决方案。用户不知道哪些方法将成为测试套件的一部分,直到给出标准。
我也在为JUNIT4寻找相同的解决方案。 我想这在Junit3中是可能的。不过不确定。如果您遇到此用例的解决方案,请告诉我们。