Jon*_*s N 7 java eclipse junit
我想实现一个更好的系统来过滤测试,以便在Eclipse中的JUnit下运行.我想要@Categories,但不必在@SuiteClasses({})注释中指定类列表,因为我认为这会降低价值,增加我们必须做的手动维护量.
有没有办法挂钩Eclipse运行JUnit测试的过程,能够对所有带有@Test的类进行自定义过滤?例如这样的一个类:
@CustomFilteredTesting
public class TheCustomFilteredTestRun {
public boolean includeThisTestClass(Class<?> klass) {
// e.g. test whether klass is in a package or subsystem
// or a subtype of some interface.
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏,-j
Eclipse使用默认的JUnit代码来运行测试,因此您只需要教授JUnit您的新技巧,Eclipse就能够做到这一点.
这样做:如何在没有套件的情况下将测试拆分成套件@SuiteClasses
?
强硬.根据我的经验,有几种解决方案:
编写一个读取所有套件并尝试查找所有测试的测试,然后确保每个测试都在一个套件中.当您忘记向套件添加新测试时,此测试将通知您.
很好:没有涉及JUnit魔法,如果你忘记某些东西会保证你的安全(比如添加@Category
一个新的测试).
缺点:需要相当一些丑陋的文件读取/代码解析/反射mojo.
您可以通过扩展编写自己的测试运行器BlockJUnit4ClassRunner
.这将允许您添加自己的自定义注释以对测试进行分类并运行它们.
添加假设.org.junit.Assume
是一个很好的小野兽,默默地无法通过测试.测试将不会运行(或者它将在第一个假设失败之前运行)但它也不会记录错误.这有点像聪明@Ignore
编写设置代码,确定要运行哪些测试并放入assumeThat()
代码中.
我实际上更喜欢使用套件,因为:
归档时间: |
|
查看次数: |
1462 次 |
最近记录: |