【问题标题】:Workaround to support org.junit.runners.Parameterized in Gradle在 Gradle 中支持 org.junit.runners.Parameterized 的解决方法
【发布时间】:2015-08-12 06:44:14
【问题描述】:

Gradle 无法运行带有以下注释的 JUnit 测试:

import org.junit.runners.Parameterized;

@RunWith(value = Paremetrized.class)
public class UnitTest {
// ...
}

自 2014 年 6 月以来,此问题的 official issue 尚未解决。

是否有任何解决方法可以启用这些测试(在 Gradle 2.4 中)?

【问题讨论】:

    标签: java unit-testing junit gradle


    【解决方案1】:

    JUnit 的Parameterized 的替代方案是开源第三方库junit-dataprovider。 Gradle 支持它(用 2.4 测试)。

    usage 类似:

    import static org.junit.Assert.*;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    
    import com.tngtech.java.junit.dataprovider.DataProvider;
    import com.tngtech.java.junit.dataprovider.DataProviderRunner;
    import com.tngtech.java.junit.dataprovider.UseDataProvider;
    
    @RunWith(DataProviderRunner.class)
    public class DataProviderTest {
    
        @DataProvider
        public static Object[][] dataProviderAdd() {
            // @formatter:off
            return new Object[][] {
                    { 0, 0, 0 },
                    { 1, 1, 2 },
                    /* ... */
            };
            // @formatter:on
        }
    
        @Test
        @UseDataProvider("dataProviderAdd")
        public void testAdd(int a, int b, int expected) {
            // Given:
    
            // When:
            int result = a + b;
    
            // Then:
            assertEquals(expected, result);
        }
    }
    

    Gradle 的依赖行:

    testCompile 'com.tngtech.java:junit-dataprovider:1.9.3'
    

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多