Сценарий PowerShell в Azure DevOps удаляет кавычки

#azure-devops

#azure-devops

Вопрос:

У меня есть сценарий PowerShell, который запускает команду, в данном случае это команда npx. Один из аргументов команды содержит пробелы, локально он работает нормально, но в Azure DevOps кажется, что он удаляет кавычки. Это потому, что сценарий завершается с ошибкой, жалуясь на значение аргумента, которое является всем до первого появления пробела.

Сценарий PowerShell выглядит немного упрощенным, например:

 npx testcafe "$env:TESTCAFE_BROWSER_NAME" tests/**/*
 

Значение переменной среды может быть примерно таким chrome@87.0:OS X Catalina

Ошибка в Azure Devops будет выглядеть примерно так:

 ERROR Unable to find the browser. "chrome@87.0:OS" is not a browser alias or path to an executable file.
 

При запуске сценария на моем локальном компьютере с тем же значением для переменной среды он завершается успешно без каких-либо ошибок.

Комментарии:

1. Вы можете попробовать запустить с помощью автономного агента, возникнет ли у вас та же проблема?

Ответ №1:

Вы можете попробовать следующие обходные пути, чтобы сохранить кавычки в сценарии.

1, вы можете использовать обратную галочку «`», чтобы избежать кавычек. Смотрите ниже:

 npx testcafe "`"$env:TESTCAFE_BROWSER_NAME`"" tests/**/*
 

2, Вы также можете определить значение с помощью кавычек в переменных среды. Определите переменную среды на вкладке Переменные, как показано ниже:

введите описание изображения здесь