Azure Devops DotNetCoreCLI@2 Тестовое задание: Как настроить аргументы?

У меня в конвейере есть такая тестовая задача:

- task: DotNetCoreCLI@2
  displayName: 'Unit Tests'
  inputs:
    command: 'test'
    arguments: '--configuration ${{ parameters.buildConfiguration }} --no-build --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover'
    publishTestResults: true
    projects: '$(Agent.BuildDirectory)\s\$(Build.Repository.Name)\*.sln'

У меня есть несколько тестовых проектов, использующих XUnit, и я хочу отключить параллелизм при запуске всех модульных тестов в этом конкретном конвейере.

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

-- xunit.parallelizeAssembly=false

При этом тестовая задача завершается с ошибкой «Один или несколько предоставленных параметров запуска содержат недопустимый токен». Я также попробовал фильтровать по определенной категории тестов в качестве временного решения, это было сделано с использованием документации, предоставленной Microsoft https://github.com/Microsoft/vstest-docs/blob/main/docs/filter.md. Условие фильтрации работает, если оно выполняется через cmd, но при использовании его через конвейер у меня все еще возникает та же ошибка: «Одна или несколько предоставленных настроек запуска содержат недопустимый токен».

Фильтр добавляется в конвейер следующим образом:

arguments: '--configuration ${{ parameters.buildConfiguration }} --no-build --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover --filter TestCategory!=Ignore'

Пожалуйста, помогите мне понять, как настроить аргументы.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
71
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Условие фильтрации работает, если оно выполняется через cmd, но при использовании его через конвейер у меня все еще возникает та же ошибка: «Одна или несколько предоставленных настроек запуска содержат недопустимый токен».

Я могу воспроизвести ту же проблему, используя тот же аргумент задачи dotnet.

Чтобы решить эту проблему, вы можете поместить аргумент категории фильтра после аргумента конфигурации.

Например:

arguments: '--configuration release  --filter TestCategory!=Ignore --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover  -- xunit.parallelizeAssembly=false'

Задача YAML:

- task: DotNetCoreCLI@2
  displayName: 'Unit Tests'
  inputs:
    command: 'test'
    arguments: '--configuration ${{ parameters.buildConfiguration }} --filter TestCategory!=Ignore --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover  -- xunit.parallelizeAssembly=false'
    publishTestResults: true
    projects: '$(Agent.BuildDirectory)\s\$(Build.Repository.Name)\*.sln'

Моя страница не обновлялась и я пропустил ваш комментарий! Спасибо за ответ, мне удалось найти это на 8 минут позже!

Rayane Hindi 16.07.2024 14:49

Обнаружена проблема: например, --filter TestCategory!=Ignore следует располагать после --configuration ${{ parameters.buildConfiguration }}, а не в конце аргументов.

Не следует помещать какие-либо аргументы после

--DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover

или он выдаст (я думаю, если поставить его в конце, предыдущий аргумент попытается проанализировать фильтр и выдаст).

Другие вопросы по теме