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

Oli*_*rth 7 eclipse groovy junit parameterized-tests groovy-eclipse

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

症状

  • 右键单击Package Explorer中的类并执行Run As - > JUnit Test Case,只会弹出一个声明"找不到JUnit测试"的对话框.
  • 右键单击项目并执行Run As - > JUnit Test Case运行参数化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" }
}
Run Code Online (Sandbox Code Playgroud)

环境

  • Eclipse Juno Service Release 2(OSX)
  • Groovy-Eclipse 2.8.0
  • JUnit 4.10.0

Ray*_*yek 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" }
}
Run Code Online (Sandbox Code Playgroud)