我这里有一个奇怪的问题,我找不到原因:
在命令行上将pitest与maven(和java 11)结合使用时,它会按预期工作,但在Jenkins服务器上通过声明性管道运行时,会导致错误。
来自maven pom的部分:
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.8</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>0.8</version>
</dependency>
</dependencies>
<configuration>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
我的Jenkinsfile的一部分:
stage('MutationTesting')
{
steps
{
bat 'mvn --batch-mode org.pitest:pitest-maven:mutationCoverage'
}
}
在此之前,将从管道调用以下maven命令:
mvn——批处理模式清洁
批处理模式编译
mvn——批处理模式编译器:testCompile surefire:test-Dmaven。测验失败忽略=真
当在命令行上准确地调用这些命令时,pitest可以完美地工作。
当比较日志记录结果时,它们几乎相等。
命令行的日志输出:
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
[…产量削减]
Jenkins管道的日志输出:
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
矿井
所以我只能假设环境是不同的,但哪一个呢?或者它是一只可怜的虫子?
最有可能的问题是,jenkins正在一个尚未编译测试的环境中执行Pitest。
最可靠的方法是将pitest绑定到概要文件中的测试阶段,而不是直接调用目标。
<profile>
<id>pitest</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.8</version>
<executions>
<execution>
<id>pitest</id>
<phase>test</phase>
<goals>
<goal>mutationCoverage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
然后,Pitest就可以运行了
mvn -Ppitest test
问题内容: 是否可以在管道常规脚本中直接调用PowerShell命令?在Jenkins中使用自定义作业时,我可以使用PowerShell插件调用该命令。但是在groovy脚本中没有片段可以使用它。 我也尝试过,但似乎此命令不允许在命令中包含多行和注释。 问题答案: 要从Groovy脚本调用PowerShell脚本,请执行以下操作: 您必须使用命令。 之后,您必须确保正确返回错误代码()变量(应导致
问题内容: 在groovy脚本中(用于jenkins管道):如何运行命令而不是命令? 我尝试了以下方法: 在通话中致电“ ” : 将呼叫替换为呼叫: 附加信息: 我的命令比命令更复杂。 问题答案: 您提供的Groovy脚本正在将结果脚本中的第一行格式化为空白行。shebang告诉脚本使用/ bin / bash而不是/ bin / sh运行,它需要位于文件的第一行,否则它将被忽略。 因此,您应该这
问题内容: 我目前正在尝试从管道中将groovy脚本作为节点之一运行,但是遇到了以下错误: 另外,我尝试以Groovy的方式安装插件,但由于某种原因,它将无法安装。每当我刷新工具页面时,安装程序就会消失。我安装groovy错误吗?请帮忙! 编辑:相关数据 而且ideainspect.groovy文件是shebang的可执行文件,这可能是问题所在。 问题答案: 您的jenkins用户在使用它时会
问题内容: 您是否知道如何在内部执行AWS CLI命令以构建管道?我没有找到任何插件 问题答案: 首先,您需要在服务器上安装aws cli,并确保jenkins用户有权运行它。 或者在创建EC2实例时简单地使用Amazon AMI,它附带了aws cli。 使用适当的策略为角色分配实例。(在aws configure中使用用户密钥更简单) 在管道步骤中使用
问题内容: 我想在Jenkins管道中运行像这样的嵌套shell命令: 不幸的是,当我将其格式化为管道语法时: Jenkins似乎无法正确运行它们,但是输出: 我试图在bash下运行命令,如下所示: 在jenkins管道上运行bash命令, 但最终遇到类似的问题。任何想法如何解决这个问题? 问题答案: 如果将shell命令扩展为两行,这对于Jenkins Pipeline来说将变得更加容易: 第一
我使用Jenkins在docker容器中使用以下命令 码头工人拉詹金斯/詹金斯 docker run-p8080:8080--name=jenkins master jenkins/jenkins 获取此错误 calc.py/var/jenkins_home/workspace/pythoncalculator@tmp/耐用-b7e99e01/脚本。sh:1:/var/jenkins\u home