Gradle Groovy和Junit
我正在Gradle插件中运行以下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
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)