Невозможно проверить BaselinePipelineTest с помощью CredentialInterceptor - PullRequest
2 голосов
/ 03 марта 2020

Я пытаюсь протестировать функцию в моем конвейере сценариев Jenkins.

void doSomeDockerThings(){
   withCredentials([[$class: 'UsernamePasswordMultiBinding', creditialsId: 'my_creds', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
      sh "docker login -u $USERNAME -p '$PASSWORD' $DTR"
   }
}

Из Groovy модульного теста, который расширяет BasePipelineTest, у меня есть следующий метод теста.

@Test
void testDoSomeDockerThings(){
   helper.registerAllowedMethod( "withCredentials", [LinkedHasMap.class, Closure.class], null );
   helper.registerAllowedMethod( "sh", [String.class], {c -> return c; })
   binding.setVariable( "USERNAME", "user" );
   binding.setVariable( "PASSWORD", "password" );
   binding.setVariable( "DTR", "Docker_Trusted_Registry" );
}

Теперь я хочу написать утверждение, что эта команда выполнена с тем, что я ожидал. Так как это находится в Closer ofCredentials, как я могу это проверить?

sh "docker login -u $USERNAME -p '$PASSWORD' $DTR"

Я также пытался использовать withCredentialsInterceptor, и я не могу понять синтаксис, который соответствует ожиданиям. Если у кого-то есть такой пример, я был бы признателен за это.

helper.registerAllowedMethod( "withCredentials", [LinkedHasMap.class, Closure.class], withCredentialsInterceptor );

Я действительно изо всех сил пытаюсь найти документацию или примеры того, как это сделать.

...