如何正确运行gradle测试任务?

时间:2019-08-19 07:05:23

标签: gradle intellij-idea

当我从Intellij Idea运行gradle测试时,我尝试使用gradle构建项目,一切都很好-所有测试都通过了,但是当我使用命令gradle test从命令行执行相同的操作时,某些单元测试失败。那是我的build.gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
    baseName = 'myProjectName'
}

repositories {
    mavenCentral()
    maven {
        url "my_repo_url"
    }
    maven {
        url "my_repo_url"
        credentials {
            username = System.getenv("MVN_USER")
            password = System.getenv("MVN_PASS")
        }
    }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {

    compile ('org.apache.poi:poi-ooxml:4.0.1')
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'

    compile ('org.springframework.boot:spring-boot-starter:2.0.5.RELEASE') {
        exclude module : 'spring-boot-starter-logging'
    }

    compile group: 'org.apache.poi', name: 'poi-ooxml-schemas', version: '4.0.1'

    testCompile('org.springframework.boot:spring-boot-starter-test:2.0.1.RELEASE')
    testCompile('com.jayway.jsonpath:json-path')
    testCompile group: 'commons-io', name: 'commons-io', version: '2.6'
    testCompile group: 'pl.pragmatists', name: 'JUnitParams', version: '1.1.1'

    compile group: 'joda-time', name: 'joda-time', version: '2.9.4'

}

还有我的junit测试课程:

public class MyTest {

    @Test
    public void testSimpleIfParsing() throws IOException {
        String complicatedStructure = "testString";
        IfTemplateElement MyClass = new MyClass(
                complicatedStructure // This variable NOT null, but I have NullPointerException
        );
        Object response = MyClass.evaluate();
        Assert.assertNotNull( response );
    }
}

MyClass构造函数:

public class MyClass {
public MyClass( String s ) {

        s = s.substring( 0, 5 );    // there I have NullPointerException.

    }
}

例外:

com.mypackage.MyTest > testSimpleIfParsing FAILED
    java.lang.NullPointerException at MyTest.java:28

但是如果在构造函数的MyClass中插入System.out.println(s),则在两种情况下都通过了所有测试(来自CLI和Intellij Idea)。

有人可以帮我忙吗? 我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

听起来很奇怪。

我建议您尝试使用intelij调试UT,然后再尝试使用gradle。

如何更改inteliJ中的单元测试运行器?

转到设置->生成,执行,部署>生成工具> Gradle> Runner

enter image description here