Java JUnit:(可能间接地)将自身包含为SuiteClass

Java JUnit:(可能间接地)将自身包含为SuiteClass,java,junit,annotations,classpathsuite,Java,Junit,Annotations,Classpathsuite,我想在继承父级的有用方法的同时,向FailingTest添加一个子测试FailingIO @RunWith(Suite.class) @Suite.SuiteClasses({FailingTest.FailingIO.class}) class FailingTest { @Test test1() {} static class FailingIO extends FailingTest { 我得到了JUnit:(可能间接地)作为SuiteClass包含自己,因为我想注释

我想在继承父级的有用方法的同时,向FailingTest添加一个子测试FailingIO

@RunWith(Suite.class)
@Suite.SuiteClasses({FailingTest.FailingIO.class})
class FailingTest {

  @Test
  test1() {}


  static class FailingIO extends FailingTest {
我得到了JUnit:(可能间接地)作为SuiteClass包含自己,因为我想注释也是继承的。有没有办法只继承方法并将注释留给父对象

我在Eclipse中看到,
Suite.SuiteClasses
具有继承的
,但没有这样的属性。发生了什么事?关于该选项,JUnit版本控制策略是什么

更新我发现可以动态构建测试套件,例如,和。但我什么时候才能利用它来扩展FailingTest和FailingIO呢?我在哪里定义此代码,谁将使用生成的子套件


更新我已检查了。它不包含自身,但不幸地执行父继承的测试。

为什么您希望内部类成为外部类的子类,而外部类是测试套件?这仅仅是“方便继承”反模式吗?通过嵌套,我强制执行这样一个事实,即子测试将仅作为父测试的一部分被调用。通过继承,我使所有项都属于同一类型。树中的子节点与父节点共享公共属性。是不是因为有人发明了反模式而不好?他们说方便不好吗?告诉那些人不要在程序员的头上乱扔垃圾,让他们分心。