[英]Run go command as a gradle task
我使用 gradle 作为 terraform 项目的构建工具。 我确实在 ..test/... 文件夹下为项目编写了单元测试。 我在本地运行测试的方式只是在命令行上go test ..test/..
' 这将运行 test 文件夹下的所有tests
。 我想将其集成到构建中,以便每个构建都运行此命令'go test ..test/..'
,我如何在 gradle 中实现这一点。 可以使用自定义任务来运行go
命令吗?
我正在尝试执行以下操作
task testExec(type: Exec) {
workingDir "${buildDir}/test"
commandLine 'go','test'
} doLast {
println "Test Executed!"
}
但我得到了错误
> A problem occurred starting process 'command 'go''
对于它的价值,我尝试了其他命令并为 ex 得到了相同的错误
task testExec(type: Exec) {
workingDir "${buildDir}/test"
commandLine 'echo','${}buildDir'
} doLast {
println "Test Executed!"
}
给出类似的错误
> A problem occurred starting process 'command 'echo''
您可以使用gradle 插件。 首先,您可以按照入门指南添加插件:
plugins {
id 'com.github.blindpirate.gogradle' version '0.11.4'
}
golang {
packagePath = 'github.com/your/package' // go import path of project to be built, NOT local file system path!
}
然后你可以运行以下命令来执行所有遵循文件名约定<name>_test.go
go 文件:
gradlew goTest
编辑:
我找到了你的错误原因。 变量buildDir
指的是项目中的build
文件夹: <project_folder>/build
。 现在的问题是文件夹test
不存在,抛出异常。 相反,您可以使用变量projectDir
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.