【问题标题】:Finding all tests in a subpackage查找子包中的所有测试
【发布时间】:2015-12-15 10:39:30
【问题描述】:

当我尝试运行 JUnit 测试时,我收到错误消息

没有找到测试运行器“JUnit 4”的测试

因此我尝试了来自

的解决方案

但是,就我而言,不同之处似乎在于我指定要在包级别而不是文件夹级别运行测试。

如果我指定一个直接包含测试类的包(例如com.example.tests.smoketests),则运行 JUnit 测试有效,但如果指定了更高级别的包(例如com.example.tests),则运行 JUnit 测试无效。

如果我在com.example.tests 中定义了一个测试,它就会被找到并运行。

有没有办法让 Eclipse/JUnit 在包和所有子包中查找测试?

【问题讨论】:

    标签: java eclipse unit-testing junit4


    【解决方案1】:

    开箱即用,您无需执行此操作。您可以在 JUnit4 中使用Suite 注释来实现此目标,但这仍然需要您为每个包手动定义一个套件测试,然后将它们全部包含在一个聚合套件测试中(这样它们递归地调用子套件)。

    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import a.sub.package.AnotherSuiteTest.class;
    
    @RunWith(Suite.class)
    @Suite.SuiteClasses({
       PackageLocalTestClass1.class,
       PackageLocalTestClass2.class,
       AnotherSuiteTest.class
    })
    public class JunitTestSuite {   
    }
    

    我尝试过构建自己的实用程序类,然后再创建整个测试系列。 This article 提供了类似的实用程序。

    【讨论】:

    • 仅供参考:您提供的链接中的代码有几个问题(发现非测试类/有几个 DynamicSuite 注释类是错误的)。
    • 对不起,@Thomas,我只是粗略地回顾了一下,它与我试图传达的“外观和感觉”相同。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 2010-10-24
    • 2016-05-06
    相关资源
    最近更新 更多