Gradle Groovy和Junit

Gradle Groovy和Junit,gradle,groovy,junit,Gradle,Groovy,Junit,我正在Gradle插件中运行以下JUnit测试: import org.junit.* import org.gradle.testfixtures.ProjectBuilder import org.gradle.api.Project public class UmpleIntegrationTests { private static Project testProject @Before public void setUp() { testPr

我正在Gradle插件中运行以下JUnit测试:

import org.junit.*
import org.gradle.testfixtures.ProjectBuilder
import org.gradle.api.Project

public class UmpleIntegrationTests {
    private static Project testProject

    @Before
    public void setUp() {
        testProject = ProjectBuilder.builder().build()
        testProject.plugins.apply 'umple.gradle.plugin'
    }

    @Test
    public void umpleApplyPluginToProject() {      
        assertTrue(testProject.getPlugins().hasPlugin('umple.gradle.plugin'))
    }

    @Test
    public void umplePluginAddsTaskToProject() {
        assertTrue(testProject.tasks.getByName('generateSource') != null)
    }
}
但是,我得到了以下错误(对于其他两个测试基本相同):


为什么assert方法没有意识到
true
是一个布尔值?此外,如果我在每个测试方法中声明并初始化一个新的
testProject
,那么该代码也可以工作。不确定为什么会这样,但不是这样。

这里的问题不是参数类型。 您必须添加一个静态导入,如

导入静态org.junit.Assert.assertTrue
访问静态
assertTrue
方法。或者,您可以调用
Assert.assertTrue(…)

UmpleIntegrationTests > umplePluginAddsTaskToProject FAILED
    groovy.lang.MissingMethodException: No signature of method: UmpleIntegrationTests.assertTrue() is applicable for argument types: (java.lang.Boolean) values: [true]
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:81)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
        at UmpleIntegrationTests.umplePluginAddsTaskToProject(UmplePluginIntegrationTests.groovy:21)