我有一个参数化构建,它在 dsl 文件中定义为
Thread thr = Thread.currentThread()
def build = thr?.executable
def resolver = build.buildVariableResolver
Map<String, JobParam> paramMap = JobConstants.PARAM_MAP
for (String key : paramMap.keySet()) {
paramMap.put(key, new JobParam(paramMap.get(key), (String)resolver.resolve(key)))
}
……
现在我正在尝试测试这个 dsl 文件并编写以下测试代码
public void testJob() {
JobManagement jm = new MemoryJobManagement()
File f = new File("jobs/PipelinesCreator.groovy")
DslScriptLoader.runDslEngine f.text, jm
}
但这给了我以下错误:javaposse.jobdsl.dsl.DslScriptException:(脚本,第 13 行)没有这样的属性:类的可执行文件:java.lang.Thread
我试图遵循 job-dsl-core 中的现有测试(https://github.com/jenkinsci/job-dsl-plugin/blob/785de7f877fdbe8fc56b8b2423ae76ec9c59fa66/job-dsl-core/src/test/groovy/javaposse/jobdsl/ dsl/DslScriptLoaderSpec.groovy#L238 ) 来运行 groovy 脚本。
如何解决此问题并使我的测试成功执行。