Протестируйте несколько проектов с помощью теста dotnet с использованием шаблона

Я пишу скрипт для сборки и тестирования проектов в репозитории. Сейчас я использую команду PowerShell Get-ChildItem -Path test -Filter *.csproj -Recurse | ForEach-Object { dotnet test $_.FullName -c $Configuration }, чтобы получить все файлы .csproj в моей тестовой папке и запустить в них тесты. Однако я замечаю, что когда я запускаю, например, dotnet test test/ProjectA/ProjectA.csproj, я получаю это сообщение:

Всего 1 тестовый файл соответствует указанному шаблону.

Увидев это, я предположил, что можно использовать шаблон для запуска тестов в нескольких проектах с помощью одной команды, но я не могу найти документацию для него или заставить его работать. Когда я пытаюсь dotnet test test/**/*.csproj, я получаю:

MSBUILD: ошибка MSB1009: файл проекта не существует.


person Valuator    schedule 19.11.2019    source источник


Ответы (2)


Кажется, в настоящее время он не поддерживается. На данный момент ближайшей альтернативой является передача пути к файлу решения команде dotnet test. Таким образом, он запустит все тесты из всех проектов, добавленных в решение.

dotnet test foo/bar.sln

person Sateesh Pagolu    schedule 22.10.2020

Сопоставление с образцом в настоящее время не поддерживается таким образом. Но вы можете просто вызвать dotnet test без дополнительного аргумента, который автоматически ищет тестовые проекты в текущем каталоге (см. test" rel="nofollow noreferrer">документы).

person Dejan    schedule 11.05.2020
comment
Это на самом деле не так. Это работает только в том случае, если есть файл решения. Если вы сделаете dotnet test внутри папки, которая просто содержит другие папки, она не найдет проекты. Просто сталкиваюсь с этим сейчас, и это отстой. Из документов: Если не указано, ищет проект или решение в текущем каталоге. - person jpgrassi; 04.06.2020