7

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

症状

  • 右键单击包资源管理器中的类并执行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" }
}

环境

  • Eclipse Juno 服务版本 2 (OSX)
  • Groovy-Eclipse 2.8.0
  • JUnit 4.10.0

4

1 回答 1

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" }
}
于 2013-07-18T07:09:14.423 回答