2017-02-14 82 views
1

据:的IntelliJ代码覆盖率亚军 - 无头

https://intellij-support.jetbrains.com/hc/en-us/community/posts/206842605-Running-IntelliJ-code-coverage-headless-on-Jenkins-

有可能在一具无头环境中使用的IntelliJ代码覆盖亚军 - 即詹金斯。

这是很好的,因为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)命令:

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 

它失败:

Error: Could not find or load main class com.intellij.rt.execution.application.AppMain即使idea_rt.jar加入到命令“CP “国旗。

这是一个鹅追逐,或可以完成?

回答

0

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

最后的类路径将包括从lib目录从输出目录和依赖,插件罐,等等。换句话说,运行应用程序所需的一切将不会发生任何生成的classpath.jar文件链接几个IDE罐子,工程类。

+0

我在指定的路径中查找它,但它不在那里。所以我认为它是生成运行时或类似的东西 - 不知道它有什么目的。但是随着你的解释,这可能是需要的。将在Windows上进一步研究它:) – Hoof

+1

该进程停止时将删除此文件。在应用程序中放置一个断点,以便在删除文件之前找到该文件。 – CrazyCoder

+0

Phew。这是一个文件的地狱......不知道这将永远“得到好”在Linux :) – Hoof