Job-dsl-plugin - Нет такого свойства: исполняемый файл для класса: java.lang.Thread для параметризованного теста сборки

У меня есть параметризованная сборка, и она определена в файле 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) для запуска отличных скриптов.

Как я могу исправить эту проблему и обеспечить успешное выполнение теста.


person inari6    schedule 08.10.2015    source источник


Ответы (1)


Я начну с ответа на ваш вопрос: просто "java.lang.Thread", как описано в http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html. не имеет свойства" исполняемый файл ", которое вы пытаетесь использовать. на ссылку в строке «def build = thr? .executable».

Похоже, вы пытаетесь вызвать плагин Jenkins Job Dsl прямо из Groovy, хотя он действительно предназначен для использования в качестве шага в работе jenkins. В пользовательском интерфейсе Jenkins это можно найти в разделе «Build», добавив шаг «Process Job DSLs». введите описание изображения здесь

Затем указав на свой отличный файл: "jobs / PipelinesCreator.groovy".

Но для ясности: если первый фрагмент кода, который вы упомянули выше, является содержимым «jobs / PipelinesCreator.groovy», он все равно не удастся по той же причине - свойство, к которому вы пытаетесь получить доступ, отсутствует.

person BitwiseMan    schedule 24.11.2015