深入探索:单元测试之Categories
2017-09-11 00:00
411 查看
摘要: 从给定的一组测试类集,**Categories** runner 仅仅是运行类 和 方法 ,他们都会被**@IncludeCategory ** 注解标记分类,或被 category 的子类型标记。 类和接口都能被 用于 category 。分类的作品,如果你说是@IncludeCategory(SuperClass.class), 那么测试被标记为 @Category({SubClass.class}) 将会被运行。
深入探索:单元测试之基于 suites 的聚合测试
深入探索:单元测试之测试执行顺序
深入探索:单元测试之异常测试
深入探索:单元测试之Ignnore测试和TimeOut测试
深入探索:单元测试之Categories
深入探索:单元测试之Assertions
常见的分类用法是:
自动测试的类型: UnitTests(单元测试), IntegrationTests(集成测试), SmokeTests(冒烟测试), RegressionTests(回归测试), PerformanceTests(性能测试) ...
测试执行快慢: SlowTests, QuickTests
在CI的哪部分构建测试应该被执行: NightlyBuildTests(每日构建的测试)
测试状态: UnstableTests(不稳定测试), InProgressTests(进行测试)
这也用于添加特定于项目的元数据,如项目的哪些特性被测试覆盖。
看到JUnit在GitHub托管项目类别用途:
See usages of Junit Categories on github hosted projects
相关文章
深入探索:单元测试之Test runners深入探索:单元测试之基于 suites 的聚合测试
深入探索:单元测试之测试执行顺序
深入探索:单元测试之异常测试
深入探索:单元测试之Ignnore测试和TimeOut测试
深入探索:单元测试之Categories
深入探索:单元测试之Assertions
Categories 的使用
从给定的一组测试类集,Categories runner 仅仅是运行类 和 方法 ,他们都会被**@IncludeCategory ** 注解标记分类,或被 category 的子类型标记。 类和接口都能被 用于 category 。分类的作品,如果你说是@IncludeCategory(SuperClass.class), 那么测试被标记为 @Category({SubClass.class}) 将会被运行。public interface FastTests { /* category marker */ } public interface SlowTests { /* category marker */ } public class A { @Test public void a() { fail(); } @Category(SlowTests.class) @Test public void b() { } } @Category({SlowTests.class, FastTests.class}) public class B { @Test public void c() { } } @RunWith(Categories.class) @IncludeCategory(SlowTests.class) @SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite public class SlowTestSuite { // Will run A.b and B.c, but not A.a } @RunWith(Categories.class) @IncludeCategory(SlowTests.class) @ExcludeCategory(FastTests.class) @SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite public class SlowTestSuite { // Will run A.b, but not A.a or B.c }
使用 Maven 整合categories
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <groups>com.example.FastTests,com.example.RegressionTests</groups> </configuration> </plugin> </plugins> </build>
使用 Gradle整合categories
test { useJUnit { includeCategories 'org.gradle.junit.CategoryA' excludeCategories 'org.gradle.junit.CategoryB' } }
使用 SBT categories
SBT's junit-interface 允许特定的 JUnit categories 例如: --include-categories=<CLASSES> 和 --exclude-categories=<CLASSES>.categories 的典型用法
Categories 常用于在测试中添加元数据。常见的分类用法是:
自动测试的类型: UnitTests(单元测试), IntegrationTests(集成测试), SmokeTests(冒烟测试), RegressionTests(回归测试), PerformanceTests(性能测试) ...
测试执行快慢: SlowTests, QuickTests
在CI的哪部分构建测试应该被执行: NightlyBuildTests(每日构建的测试)
测试状态: UnstableTests(不稳定测试), InProgressTests(进行测试)
这也用于添加特定于项目的元数据,如项目的哪些特性被测试覆盖。
看到JUnit在GitHub托管项目类别用途:
See usages of Junit Categories on github hosted projects
参考
Categories javadoc : https://github.com/junit-team/junit4/wiki/Categories相关文章推荐
- 深入探索:单元测试之Rules
- 深入探索:单元测试之Ignnore测试和TimeOut测试
- 深入探索:单元测试之测试执行顺序
- 深入探索:单元测试之基于 suites 的聚合测试
- 深入探索:单元测试之Test runners
- 深入探索:单元测试之Assertions
- 深入探索:单元测试之Parameterized tests
- 单元测试之道-深入理解JUnit
- 15.探索吧!深入理解探索式软件测试
- Webapp---深入理解viewport,viewport测试,viewport查询网站
- C/C++数组名与指针区别深入探索
- 深入探索C语言之结构体(struct)
- selenium+java+testNG+pageObject深入理解自动化测试框架
- C++虚函数深入测试
- uiautomator测试框架,深入waitForIdle()
- 《深入探索C++对象模型》读后总结
- 深入探索Android Service
- iOS开发之单元测试
- [读书笔记] 深入探索C++对象模型-第五章-构造、析构、拷贝语义学(下)
- 深入探索面向对象事件(Delegate)机制