我想知道是否有任何方法可以将一组测试类收集在一起,并运行用于这些测试常见的测试类别。我会尝试在一个示例中解释:
我有这两个类别:
public interface Slowtests{}
public interface Fasttests{}
以及以下类和方法:
@Category({SLowTests.class, FastTests.class})
Class A extends TstBase {
@Category({SLowTests.class})
void a1() {}
@Category({FastTests.class})
void a2() {}
@Category({SLowTests.class, FastTests.class})
void a3() {}
}
@Category({SLowTests.class, FastTests.class})
Class B extends TstBase {
@Category({SLowTests.class})
void b1() {}
void b2() {}
}
@Category({SLowTests.class, FastTests.class})
Class C extends TstBase{
void c1() {}
void c2() {}
}
现在,假设我想在同一测试套件下运行A
和B
和C
的所有快速测试类,并仅运行用FastTests
类别注释的测试。
希望我的问题足够清楚。请告知我该怎么办?
这样定义您的测试套件:
@RunWith(Categories.class)
@Categories.IncludeCategory(FastTests.class)
@Suite.SuiteClasses( /* Your test classes here */)
public class FastTestSuite {
}
这是官方文档和示例。