相关文章
- 深入探索:单元测试之Test runners
- 深入探索:单元测试之基于 suites 的聚合测试
- 深入探索:单元测试之测试执行顺序
- 深入探索:单元测试之异常测试
- 深入探索:单元测试之Ignnore测试和TimeOut测试
- 深入探索:单元测试之Categories
- 深入探索:单元测试之Assertions
IDE 支持 - graphical runners
NetBeans, Eclipse 和 IntelliJ Idea 都有本地的图形界面 test runners 构建器。
基于 Test runner 的 Console
单元测试提供工具去定义测试集合并能被运行 已经显示他的结果。运行测试,可以在Ide控制台看见结果。 运行这个是依赖于Java的运行方法:** org.junit.runner.JUnitCore.runClasses(TestClass1.class, ...); ** 或者, 执行命令行: java org.junit.runner.JUnitCore TestClass1 [...other test classes...]
关于它的特性文档,能在这里找到:http://junit.org/javadoc/latest/org/junit/runner/JUnitCore.html
使用旧的运行器:
可以使用 JUnit4TestAdapter 适配器 使用Junit4 执行 junit3 的测试,这样能做到兼容。
public static Test suite() {
return new JUnit4TestAdapter('YourJUnit4TestClass'.class);
}
@RunWith annotation
如果一个类 被 @RunWith 注解 或 @RunWith 的扩展注解, JUnit 将会调用类的引用,而不是编译器编译到JUnit 中。
- @RunWith的 JavaDoc :http://junit.org/javadoc/latest/org/junit/runner/RunWith.html
- JUnit默认的编译器为:BlockJUnit4ClassRunner 它将会取代旧的 JUnit4ClassRunner
- 注解类 @RunWith(JUnit4.class) 在当前的版本将会调用默认的 JUnit 4 运行器。
特殊的运行器
1)Suite
- Suite 是一个标准的runner , 它能让你每次构建一个suite 的测试都能包含很多类。
- 更多关于 使用 Suite 做聚合测试的 信息:点击这里
- http://junit.org/javadoc/latest/org/junit/runners/Suite.html
2)Parameterized
- Parameterized 是另外一个标准的runner ,他实现了 参数化测试。当运行一个参数测试类时,实例就会被创建来测试交互产品的测试方法和测试数据。
- 更多信息可以查看 Parameterized Tests 页面。
- javadoc
3)Categories
- Categories 是Junit4.12 中有一个标准的runner ,它能够用使用一些测试标签来标记测试方法,归为一个子集,来包含或排除一些测试用例的执行。
- 更多信息,可以查看 Categories 的介绍信息。
实验性的 Runners
Enclosed
- **Enclosed **—— 如果把测试放在内部类,例如,那Ant 来说,它不会找到内部类。但通过运行带有封闭的外部类,内部类中的测试将被运行。您可以将测试放入内部类中,以便方便地分组或共享常数。
第三方的 Runners
其他一些第三方比较受欢迎的Runner:
- [SpringJUnit4ClassRunner](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/context/junit4/SpringJUnit4ClassRunner.html
- MockitoJUnitRunner
- HierarchicalContextRunner
- Avh4's Nested
- [NitorCreation's NestedRunner](https://github.com/NitorCreations/CoreComponents/tree/master/junit-runners