2013-07-15 39 views
7

我在Eclipse中运行Groovy JUnit测试用例(参见下面的测试代码和环境详细信息)时遇到问题。Eclipse中的参数化Groovy JUnit测试用例

症状在Package Explorer中的类

  • 右键单击并做运行方式 - > JUnit测试案例只是带来了一个对话框,声称“没有发现JUnit测试”。该项目
  • 右键单击并做运行方式 - > JUnit测试案例运行所有的测试用例除了参数化的Groovy之一。

事情我已经试过

  1. 确保 “正常” 的Groovy的JUnit测试的具体运行情况。 这工作。
  2. 确保运行参数化的Java测试用例。 这工作。
  3. 为此测试案例手动创建JUnit运行配置。 这工作。

所以

所以,我有一个解决方法不方便(3)。但是这不是可扩展的,因为当我运行项目中的所有测试用例时,这个测试用例仍然不会被包含。

任何想法如何让Eclipse/Groovy插件/ JUnit自动识别我的测试用例?


测试用例代码

import org.junit.Test 
import org.junit.runner.RunWith 
import org.junit.runners.Parameterized 
import org.junit.runners.Parameterized.Parameters 

@RunWith(Parameterized) 
public class TestParams { 
    final int a 

    public TestParams(int a) { this.a = a } 

    @Parameters 
    public static Collection<Object[]> data() { 
     def cases = new Object[2][1] 
     cases[0][0] = 3 
     cases[1][0] = 4 
     Arrays.asList(cases) 
    } 

    @Test public void test() { println "a = $a" } 
} 

环境

  • 的Eclipse朱诺服务版本2(OSX)
  • Groovy的Eclipse的2.8.0
  • JUnit的4.10.0

+0

嗯......我在开普勒用Groovy-Eclipse 2.8.0和2.1.5编译器运行。这对我有用。你的错误日志中有错误吗?内容辅助/导航是否在班级内部工作? –

+0

@AndrewEisenberg:内容帮助似乎工作正常,并没有错误报告(正如我所说,这运行良好,明确的运行配置)。我还没有去探索Kepler(IDE在我的OSX上立即崩溃)。不过,我对Groovy-Eclipse插件的一般经验(迄今为止)是**非常**气质和越野车,所以也许我在这里只是不幸运! –

回答

1

此代码的工作对我的JUNO日食,JUnit的4.10和Groovy 2.0.6。我从你的代码开始,但是由于一些注释是红色的,所以不得不与进口混淆。我还必须将.class添加到参数化。

import org.junit.Test 
import org.junit.runner.RunWith 
import org.junit.runners.Parameterized 
import org.junit.runners.Parameterized.Parameters 
@RunWith(Parameterized.class) public class TestParams { 
    final int a 

    public TestParams(int a) { this.a = a } 

    @Parameters 
    public static Collection<Object[]> data() { 
     def cases = new Object[2][1] 
     cases[0][0] = 3 
     cases[1][0] = 4 
     Arrays.asList(cases) 
    } 

    @Test public void test() { println "a = $a" } 
} 
+0

不幸的是,虽然我还没有尝试回滚到Groovy-Eclipse 2.0.6(我将在明天尝试......),所以如果将'Parameterized.class'更改回'Parameterized ',它不再适合你? –

+0

oop,如果我删除.class,它仍然有效。对于困惑感到抱歉。 –