Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 如何使用github操作bot测试gradle java_Kotlin_Gradle_Junit4_Github Actions_Gradlew - Fatal编程技术网

Kotlin 如何使用github操作bot测试gradle java

Kotlin 如何使用github操作bot测试gradle java,kotlin,gradle,junit4,github-actions,gradlew,Kotlin,Gradle,Junit4,Github Actions,Gradlew,我正在尝试实现Github操作(bot),它在创建PR时运行gradle测试。 为了确保我的工作流文件按预期工作,我显式地编写了一个测试方法,该方法应该会导致失败 @测试 有趣的是这应该失败{ 资产质量(1,2) } 当我尝试在本地机器上测试时,我会得到下面的日志 > Task :test FAILED FAILURE: Build failed with an exception. # More 上面的日志表明测试代码中出现了我预期的错误。 但是当Github actions b

我正在尝试实现Github操作(bot),它在创建PR时运行gradle测试。 为了确保我的工作流文件按预期工作,我显式地编写了一个测试方法,该方法应该会导致失败

@测试
有趣的是这应该失败{
资产质量(1,2)
}
当我尝试在本地机器上测试时,我会得到下面的日志

> Task :test FAILED

FAILURE: Build failed with an exception.

# More
上面的日志表明测试代码中出现了我预期的错误。 但是当Github actions bot运行这个命令时,测试代码的结果是
SUCCESS

下面是我的github工作流yaml文件,用于此操作

name:PullRequestGradleTest
关于:
拉取请求目标:
类型:[已标记]
工作:
测试:
姓名:GradleTest
运行于:ubuntu最新版本
if:contains(github.event.pull\u request.labels.*.name,‘STAGING’)
步骤:
-姓名:结帐
用途:行动/checkout@v2
-名称:安装程序JDK 1.8
用途:操作/设置-java@v2
与:
java版本:“8”
分发:“采用”
-名称:向gradlew授予权限
运行:chmod+x gradlew
-名称:测试
运行:梯度测试--测试“*”
-名称:测试成功
如果:成功()
用途:操作/github-script@0.2.0
与:
github令牌:${{github.token}
脚本:|
const pull_number=“${github.event.number}”
等待github.pulls.createReview({
…context.repo,
拔出号码,
正文:“所有测试均通过。”,
事件:“批准”
})
-名称:测试失败
if:failure()
用途:操作/github-script@0.2.0
与:
github令牌:${{github.token}
脚本:|
const pull_number=“${github.event.number}”
等待github.pulls.createReview({
…context.repo,
拔出号码,
正文:“测试代码有问题。”,
事件:“请求更改”
})
等待github.pulls.update({
…context.repo,
拔出号码,
国家:“关闭”
})

我发现您使用的是
gradle
,而不是
gradlew

name:PullRequestGradleTest
关于:
拉取请求目标:
类型:[已标记]
工作:
测试:
姓名:GradleTest
运行于:ubuntu最新版本
if:contains(github.event.pull\u request.labels.*.name,‘STAGING’)
步骤:
-姓名:结帐
用途:行动/checkout@v2
-名称:安装程序JDK 1.8
用途:操作/设置-java@v2
与:
java版本:“8”
分发:“采用”
-名称:向gradlew授予权限
运行:chmod+x gradlew
-名称:测试
运行:./gradlew测试--测试“*”
-名称:测试成功
如果:成功()
用途:操作/github-script@0.2.0
与:
github令牌:${{github.token}
脚本:|
const pull_number=“${github.event.number}”
等待github.pulls.createReview({
…context.repo,
拔出号码,
正文:“所有测试均通过。”,
事件:“批准”
})
-名称:测试失败
if:failure()
用途:操作/github-script@0.2.0
与:
github令牌:${{github.token}
脚本:|
const pull_number=“${github.event.number}”
等待github.pulls.createReview({
…context.repo,
拔出号码,
正文:“测试代码有问题。”,
事件:“请求更改”
})
等待github.pulls.update({
…context.repo,
拔出号码,
国家:“关闭”
})
如果在命令中使用
gradle
,这将取决于机器的环境。在这种情况下,可能由于
Gradle
版本而发生错误。因此,您需要使用回购协议中包含的项目的
Gradle
。使用的方法是使用
gradlew
脚本

我还建议遵循这三个步骤来测试pull请求的分支

清洁->组装(或构建)->测试


基本问题是,如果我们使用
pull\u request\u target
事件,操作将在目标分支上运行,这将是PR将合并到的基本分支。为了解决这个问题,我必须显式地设置此操作将在何处运行

作业上
=>
步骤

步骤:
-姓名:结帐
用途:行动/checkout@v2
与:
ref:${{github.event.pull_request.head.ref}
存储库:${{github.event.pull\u request.head.repo.full\u name}

太棒了!实际上已从
/gradlew test
更改为
gradle test
,因为我还认为gradle有问题,但这不是问题的根本原因。:)然后,您可能需要提供详细信息,如显示异常消息或stacktrace来解决此问题。