Java 在相同的测试运行更多次的情况下,如何区分junit测试运行的是哪个测试套件?

Java 在相同的测试运行更多次的情况下,如何区分junit测试运行的是哪个测试套件?,java,junit,jenkins,automated-tests,tycho,Java,Junit,Jenkins,Automated Tests,Tycho,我有JUnit主测试套件。此套件包含许多套件-针对每个测试配置 @RunWith(ProgressSuite.class) @SuiteClasses({ SimpleTest.class, AboutTest.class, CDH4_JDBC_TestSuite.class, CDH5_JDBC_TestSuite.class, CDH4_Metastore_TestSuite.class,

我有JUnit主测试套件。此套件包含许多套件-针对每个测试配置

  @RunWith(ProgressSuite.class)
    @SuiteClasses({

        SimpleTest.class, 
        AboutTest.class, 

        CDH4_JDBC_TestSuite.class, 
        CDH5_JDBC_TestSuite.class,
        CDH4_Metastore_TestSuite.class,
        CDH5_Metastore_TestSuite.class,
        CDH4_JDBC_Kerberos_TestSuite.class,
        CDH5_JDBC_Kerberos_TestSuite.class,
        CDH4_Metastore_Kerberos_TestSuite.class,
        CDH5_Metastore_Kerberos_TestSuite.class,


    })
    public class TestSuite {

    }
每个测试配置的套件都包含相同的测试用例,但包含不同的setUpClass()和tearDownClass()方法

我使用詹金斯和第谷进行建筑测试。当我运行测试套件并且一些测试失败时,我无法区分哪些配置测试失败。在Jekins中,我只能看到一些信息,例如NewFolderFromToolbar测试运行了8次(3次失败,5次通过)。当然,我可以从日志中获取所需的信息,但这很耗时


有没有办法获取所需信息?e、 使用不同的测试结构,使用不同的jenkins插件,如果可能的话动态重命名方法等等?有什么想法吗?非常感谢

您可以将测试类抽象化,并使每个配置成为一个子类

public class CDH4NewFolderFromToolbarTest extends AbstractNewFolderFromToolbarTest{
  //...

}
然后在套件中调用特定的测试类

RunWith(Suite.class)
@SuiteClasses({

CDH4PerspectiveSwitchTest.class,

CDH4NewFolderFromToolbarTest.class,
CDH4RenameFolderFromToolbarTest.class,
CDH4RenameFileFromToolbarTest.class,
//...etc
})

public class CDH4_JDBC_Kerberos_TestSuite {

   //same as before

}

我主张不要在每个子类中重新配置,因为
@BeforeClass
@AfterClass
如果放在套件中只会被调用一次。

感谢您的回复,但这个解决方案并不能让我满意。可能会有很多测试配置,我不知道将来会添加多少。我不想为每个可能的配置扩展每个测试。我需要更通用的解决方案。
RunWith(Suite.class)
@SuiteClasses({

CDH4PerspectiveSwitchTest.class,

CDH4NewFolderFromToolbarTest.class,
CDH4RenameFolderFromToolbarTest.class,
CDH4RenameFileFromToolbarTest.class,
//...etc
})

public class CDH4_JDBC_Kerberos_TestSuite {

   //same as before

}