【问题标题】:Cannot run single parameterized test method in eclipse无法在 Eclipse 中运行单个参数化测试方法
【发布时间】:2015-05-21 21:01:20
【问题描述】:

我正在使用 Junit-4 在 Eclipse Luna 中运行一些参数化测试。我可以通过右键单击并选择“run as -> JUnit Test”来运行单个类,但是如果我展开该类并对单个方法执行相同的操作(仅运行一个测试),我会在内部得到一个初始化错误“无根测试”。但是,如果我运行整个类的方法,然后右键单击结果窗格中的单个测试并单击“运行”,它运行得很好。

如何设置 JUnit 以便我可以运行单个测试方法而不必先运行整个类?我应该查看哪些配置选项?这是一个 Maven 项目,但我不确定这是否重要。单步执行,在成功生成参数后,我可以看到 JUnit 尝试运行测试时出现问题,但当时我看不到源代码,所以我的信息非常有限。没有显示错误/异常详细信息:(

我很确定这是一个配置问题,因为我设法通过以下测试用例重现了该问题:

@RunWith(Parameterized.class)
public class JUnitTesting {
    /**
     * Generates list of environments to use for the test.
     * @return The list of environments to pass to the constructor.
     */
    @Parameters
    public static synchronized  Collection<String[]> environmentsToUse() {
            LinkedList<String[]> environments = new LinkedList<String[]>();
            environments.add(new String[]{"WINDOWS", "firefox", null});
            environments.add(new String[]{"WINDOWS", "chrome", null});
            return environments;    
    }

    public JUnitTesting(String os, String browser, String version) {

    }

    @Test
    public void sampleTest() {
        System.out.println("Test run.");
    }
}

【问题讨论】:

  • 它发生在我尝试的任何测试方法上,我怀疑这是一个项目配置问题。 Eclipse Luna 4.4
  • @E-Riz 至于代码,你在找什么?我的测试类是从一个很长的基础测试类扩展而来的,你想要参数化生成器吗?设置?日志记录和测试观察者?有什么用处?
  • 可能重复,请检查一下? stackoverflow.com/questions/12798079/…
  • 我最初没有注意到您在谈论参数化测试。可能是一个错误,或者只是一个限制,因为参数与正常测试生命周期的交互方式。如果您可以将其简化为一个简单的测试来证明问题,那将有所帮助。
  • @dubes 我不知道问题出在哪里,或者所谓的解决方案正在解决什么问题。

标签: eclipse junit


【解决方案1】:

之前 Mars (4.5) 版本中是known limitation of Eclipse's JUnit support。显然也是in IntelliJ。如果您不能使用 Mars 里程碑或发布版本,there is a workaround,如果您愿意使用自己的自定义运行器。

【讨论】:

  • 我还在 Luna 上,所以我可以使用补丁,对吧?如何以及在哪里可以找到它?
  • 仅当您愿意构建自己的 Eclipse - 它是一个代码补丁,而不是您可以安装到 Eclipse 中的东西。
  • Netbeans 8.0.2 也有这个限制。是否有任何已知的解决方法或插件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 2013-11-24
  • 1970-01-01
  • 2018-10-28
  • 2012-01-02
  • 1970-01-01
  • 2014-06-28
相关资源
最近更新 更多