Мои тесты определены в проекте .NetStandard (сборка) (так как мне нужно тестировать их на самых разных платформах).Мы не можем запустить их напрямую, так как для этого требуется, чтобы проект был нацелен на что-то вроде .NetFramework или .Net Core.
Итак, я создал проект .Net Core и ссылаюсь на мой проект .NetStandard.
Однако при запуске dotnet test ...csproj
я, очевидно, получаю
Нет доступных тестов в .... Убедитесь, что обнаружитель тестов и исполнители зарегистрированы, а настройки версии платформы и фреймворка соответствуют требованиям, и попробуйте снова.
... поскольку, очевидно, нет никакой магии, и адаптер тестирования не может прочесть мои мысли и автоматически перейти к любой ссылочной сборке.
Кажется, что обнаружитель тестов просто нене смотрите на прилагаемые сборки с тестами.
Однако должен быть какой-то способ упомянуть это, верно? Документация довольно скромна в этом отношении, поэтому я даже не знаю, возможен ли вообще такой подход.Однако при тестировании Xamarin.iOS / Android с помощью TestRunners у них всегда есть возможность добавить мою сборку для тестирования, например: runner.Add(typeof(MyTestClass).Assembly)
.
Просто чтобы было ясно, что этот вопрос имеет значение - это не , а на самом деле , предназначенная для разных платформ, проблема , но поиск способа запуска тестов из проекта .Net Core (способ, которым уже работает для Xamarin):
Одним из решений для этого является создание унаследованного класса в проекте .NET Core из класса (ов) проекта .NETStandard:
[TestFixture]
public class TestsClassInNetCoreProject : TestsClassInNetStandardProject
{
// ...
}
(он будет работать в обоих направлениях: либо из командыили из меню «Выполнить тесты» VS), но это, конечно, не лучший способ справиться с этим.
Просто подытожу:
- Тесты должны быть помещены в отдельный проект/ assembly, как и для тестовых проектов Xamarin, которые они на самом деле не запускают обычным образом. Тесты выполняются (они запускаются через тестовый прогон внутри приложения iOS / Android).
- Таким образом, удобно иметь тесты в.NETStandard сборка, которую можно прикрепить куда-либо еще.
- Опять же, этот уже работает для Xamarin (специфичный для платформы проект, подключающий мою библиотеку .NETStandard с тестами) через тестовый прогон (NUnit one), но не для .NET Core проекта.
- Мне не нужно для запуска тестов на самой сборке .NET Standard (что даже невозможно), мне нужно на них нужно ссылаться из тестируемого проекта .NET Core.
Есть ли какой-нибудь способ, которым мне повезет с этим?