【问题标题】:Dynamically Creating JUnit4 Test Suite from Properties File从属性文件动态创建 JUnit4 测试套件
【发布时间】:2016-10-09 05:03:06
【问题描述】:

我用来动态创建 JUnit 测试套件的解决方案可以在这里的类似问题中找到:How do I Dynamically create a Test Suite in JUnit 4?

我试图适应的解决方案如下所示:

@RunWith(AllTests.class)
public class SomeTests
{
    public static TestSuite suite()
    {
        TestSuite suite = new TestSuite();

        suite.addTest(new JUnit4TestAdapter(Test1.class));
        suite.addTest(new JUnit4TestAdapter(Test2.class));

        return suite;
     }
}

但是,我不仅希望能够动态创建测试套件,而且还希望能够允许运行我的程序的用户使用属性文件指定他们想要运行的测试。

有没有一种方法可以用字符串注释我的类,这样我就可以在给定注释字符串的情况下获得实际的类类型?是否有任何可行的解决方案,或者这只是一般的不良做法?

【问题讨论】:

  • 您想实现类似JUnit Categories 的东西,或者更确切地说像Maven test 这样的动态功能,您可以通过-Dtest=NameOfTestClass,NameOfOtherTestClass 甚至-Dtest=NameOfTestClass#testMethod+othertestMethod 指定应该执行哪些测试类或方法?

标签: java junit4 test-suite


【解决方案1】:

据我了解,您希望将测试类标记为属于一个或多个组,然后用户定义要执行的测试用例组。对吗?

这种做法是好是坏,它已经在 TestNG 中实现。 JUnit 中没有这样的功能。但是您可以轻松地将注释扫描器添加到您的代码中并动态选择适当的测试类(例如,使用https://github.com/ronmamo/reflections 只需一行代码即可在类路径中收集所有带注释的测试)。

【讨论】:

  • 正如 Roman 所指出的,JUnit 确实具有此功能。您甚至可以指定从 JUnit 4.12 开始在命令行中包含哪些类别
猜你喜欢
  • 2013-06-30
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
相关资源
最近更新 更多