Eclipse中的参数化Groovy JUnit测试用例

时间:2013-07-15 19:46:04

标签: eclipse groovy junit parameterized-tests groovy-eclipse

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

症状

  • 右键单击Package Explorer中的类并执行 Run As - > JUnit测试用例只会打开一个声明“找不到JUnit测试”的对话框。
  • 右键单击项目并执行运行方式 - > JUnit测试用例运行所有测试用例,除了参数化的Groovy。

我尝试过的事情

  1. 确保运行“正常”Groovy JUnit测试用例。 这有效。
  2. 确保参数化的Java测试用例运行。 这有效。
  3. 为此测试用例手动创建JUnit运行配置。 这有效。
  4. 因此

    所以我有一个不方便的解决方法(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 Juno Service Release 2(OSX)
    • Groovy-Eclipse 2.8.0
    • JUnit 4.10.0

1 个答案:

答案 0 :(得分:1)

这段代码适用于我的juno eclipse,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" }
}