Gradle的Groovy插件声称它支持联合编译,允许自由混合和匹配Groovy和Java代码,并在两个方向上都有依赖关系“。
但是,我不认为这适用于测试代码。
我在src/test/Java中有一个Java“示例”测试
使用位于src/test/groovy
中的类。
当尝试使用Gradle构建时,我会遇到如下错误:
SwingJavaFXSampleAppTestInJava.java:23: error: cannot find symbol
SwingJavaFXSampleAppTest swingJavaFx = new SwingJavaFXSampleAppTest();
请注意,SwingJavaFXSampleAppTest
是一个尚未编译的Groovy类(在Gradle输出中,我可以看到它在尝试compileTestJava
之前没有运行compileTestGroovy
,因为前者依赖于后者)。
我能够使用groovy-eclipse插件与Maven构建相同的项目。
为什么它不能在Gradle中工作,当它声称支持任何顺序的编译,我怎么能让它工作?
您应该能够将java测试移动到src/test/groovy
。
正如Gradle用户指南中所解释的,只有传递给GroovyCompile
任务的代码才是联合编译的。因此,要么将Java和Groovy代码放入src/main/Groovy
,要么重新配置源代码集:
sourceSets.main.java.srcDirs = []
sourceSets.main.groovy.srcDirs = ["src/main/java", "src/main/groovy"]
对于测试,将所有出现的main
替换为test
。
我确实看到了一些关于在SonarQube中安装Groovy插件的相关答案,但是没有提到这是用于哪一个版本的SonarQube的解决方案(我不再看到这个插件可用)
根据前面的问题,我创建了一个静态编程语言Gradle项目。我向其中添加了两个源文件: 我还将目录src标记为源根,将测试标记为测试源根。 如果我在别处创建与这些源文件完全相同的目录结构,并围绕它创建一个非渐变IntelliJ项目,我就能够编译和运行这些代码,包括测试。 然而,在我的Gradle版本的项目中,我无法从IntelliJ IDEA构建测试。我发现以下错误: 奇怪的是,如果我在构建包装器后
问题内容: 我们刚刚开始在我们的项目上使用Gradle和TestNG,所以我正在检查是否有任何测试失败实际上会使构建失败。我很惊讶地发现事实并非如此。正确地拾取并编译了测试,因此我看到了类文件。我也得到了运行的报告,但是显示0个测试(预期2个)。跑步给我以下内容: SuperSimpleTest.java: build.gradle包含: 我已经看过有关此主题的其他问题,并且找到了用作解决方法的提
我们刚刚开始在我们的项目中使用Gradle和TestNG,所以我正在检查失败的任何测试是否真的失败了构建。我很惊讶地看到它没有。测试被正确地拾取和编译,所以我看到了类文件。我也收到了运行报告,但它说0个测试(预计为2个)。运行给我以下信息: SuperSimpleTest.java: 生成.gradle 包含: 我已经看了一下有关此主题的其他问题,在那里我发现了使用作为解决方法的提示(请参阅 ht