【问题标题】:How do I make Eclipse recognize JUnit tests when creating a suite?创建套件时如何让 Eclipse 识别 JUnit 测试?
【发布时间】:2010-07-31 08:42:47
【问题描述】:

当我使用 Eclipse 创建 JUnit 测试套件时,它没有检测到任何现有测试,并警告“未选择测试类”。

我从测试类包(test/com/.../package)开始,包被选中。那里有几个 JUnit 测试,也是通过相同版本的 Eclipse 创建的,但是没有办法选择它们。

我正在使用 JUnit 4。

谢谢!

【问题讨论】:

    标签: java eclipse junit suite


    【解决方案1】:

    创建套件的向导目前仅适用于 JUnit 3 测试,请参阅 corresponding bugzilla entry

    【讨论】:

    • JUnit 4 已经存在多久了?嗯,这就解释了,谢谢!
    【解决方案2】:

    适合我的套件是:

    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    ...
    
    @RunWith(Suite.class)
    @SuiteClasses( { MyTest.class })
    public class SeleniumSuite {
    
        ...
    
    }
    

    如果您只想运行包中定义的测试子集,这将很有帮助。你叫什么测试?尝试重构它们,使它们称为 Test*.java 或 *Test.java。

    【讨论】:

    • 它们是 Eclipse 创建的普通 *Test.java。
    【解决方案3】:

    在 Eclipse 中,您只需右键单击要在其中运行测试的项目/包并选择 Run as > Junit Test - 您可以完全避免需要以编程方式创建测试套件类。

    【讨论】:

    • 嗯?我指的是创建一个TestSuite 类,它以编程方式列出要包含的测试。 Eclipse 可以在没有一个项目的情况下执行您的所有测试,Ant/Maven 等也可以。您能解释一下您是如何尝试从 Eclipse 调用测试的吗?
    • 也许我误解了 - “运行方式”创建源代码?我试试看。
    • 不,run as 执行类/应用程序/等。我的观点是,在 Eclipse 中,您无需费心创建 TestSuite - Eclipse 的测试运行器可以在没有一个单元测试的情况下运行一系列单元测试(只需通过 GUI 告知要运行的单元测试)。
    • 创建套件的目的是使测试可以自动化。如果您必须坐在那里并选择“运行方式”,那么您不是一个每晚/每小时的批处理,您是一个人。
    • 正确,但通常您不会通过在 Eclipse 中启动测试来自动化测试。您可以使用 Ant 或 Maven 执行此操作,它们都具有可以处理在给定文件夹/包/等中运行所有测试的功能,无需手动创建 TestSuite。 Eclipse 具有相同类型的功能,这是我唯一的观点。
    猜你喜欢
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2021-05-07
    • 2013-02-11
    • 1970-01-01
    相关资源
    最近更新 更多