Grails IntelliJ代码覆盖率跑步者-无头

Grails IntelliJ代码覆盖率跑步者-无头,grails,intellij-idea,command-line,code-coverage,headless,Grails,Intellij Idea,Command Line,Code Coverage,Headless,根据: 可以在无头环境(即Jenkins)中使用intellij code coverage runner 这很好,因为IntelliJ在新的groovy代码上报告的覆盖率结果比例如Cobertura要准确得多。我还可以从Grails测试中收集信息——单元和集成。然而,我不知道如何在Jenkins上设置它——gradle、maven、定制构建脚本或其他什么 IntelliJ在运行Grails测试时会触发以下命令: C:\Program Files\Java\jdk1.7.0_79\bin\ja

根据:

可以在无头环境(即Jenkins)中使用intellij code coverage runner

这很好,因为IntelliJ在新的groovy代码上报告的覆盖率结果比例如Cobertura要准确得多。我还可以从Grails测试中收集信息——单元和集成。然而,我不知道如何在Jenkins上设置它——gradle、maven、定制构建脚本或其他什么

IntelliJ在运行Grails测试时会触发以下命令:

C:\Program Files\Java\jdk1.7.0_79\bin\java 
-XX:+TieredCompilation 
-XX:TieredStopAtLevel=1 
-XX:CICompilerCount=3 
-Dgrails.full.stacktrace=true 
-Djline.WindowsTerminal.directConsole=false 
-Dgrails.build.listeners=org.jetbrains.groovy.grails.rt.GrailsIdeaTestListener 
-Didea.launcher.port=7533 
"-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3\bin" -classpath C:\Users\xxx\AppData\Local\Temp\classpath.jar 
-Dfile.encoding=UTF-8 com.intellij.rt.execution.application.AppMain org.grails.cli.GrailsCli test-app -echoOut
这表明应安装IntelliJ以无头运行。是否可以在无头环境中执行上述命令

我已尝试解包intellij并执行以下(针对linux稍微修改)命令:

它失败于:

错误:无法找到或加载主类com.intellij.rt.execution.application.AppMain
,即使将idea\u rt.jar添加到带有“cp”标志的命令中


这是一场白费力气的追逐,还是可以做到的?

您是否在Windows上检查了
classpath.jar
?该文件是自动生成的,并通过清单链接许多JAR,以避免操作系统对最大命令行长度的限制。您的
/tmp/classpath.jar
不存在或没有正确链接依赖项


最终的类路径将包括来自
lib
目录的几个IDE jar、来自输出目录的项目类和依赖项、插件jar等。换句话说,运行应用程序所需的所有内容都将从生成的
classpath.jar
文件链接。

您是否在Windows上检查了
classpath.jar
?该文件是自动生成的,并通过清单链接许多JAR,以避免操作系统对最大命令行长度的限制。您的
/tmp/classpath.jar
不存在或没有正确链接依赖项


最终的类路径将包括来自
lib
目录的几个IDE jar、来自输出目录的项目类和依赖项、插件jar等。换句话说,运行应用程序所需的所有内容都将从生成的
classpath.jar
文件链接。

我在指定的路径中查找了它,但它不在那里。所以我假设它是在运行时生成的,或者类似的,我不知道它有什么用途。但有了你的解释,这可能是必要的。将在windows上进一步查看:)进程停止时,此文件将被删除。在应用程序中放置断点,以便在删除文件之前找到该文件。Phew。那是一个该死的文件。。。不确定这是否会在linux上“变得很好:)使用TeamCity可能更容易。您可能可以通过Jenkins启动构建并通过工件将结果导出到它。我在指定的路径中查找了它,但它不在那里。所以我假设它是在运行时生成的,或者类似的,我不知道它有什么用途。但有了你的解释,这可能是必要的。将在windows上进一步查看:)进程停止时,此文件将被删除。在应用程序中放置断点,以便在删除文件之前找到该文件。Phew。那是一个该死的文件。。。不确定这是否会在linux上“变得很好:)使用TeamCity可能更容易。您可能可以通过Jenkins启动构建,并通过工件将结果导出到它。
java 
-XX:+TieredCompilation 
-XX:TieredStopAtLevel=1 
-XX:CICompilerCount=3 
-Dgrails.full.stacktrace=true 
-Djline.WindowsTerminal.directConsole=false -Dgrails.build.listeners=org.jetbrains.groovy.grails.rt.GrailsIdeaTestListen r 
-Didea.launcher.port=7533 
-Didea.launcher.bin.path=/home/jenkins/idea/bin -classpath /tmp/classpath.jar 
-Dfile.encoding=UTF-8 org.grails.cli.GrailsCli test-app -echoOut