#.net #asp.net-core #mstest
#.net #asp.net-core #mstest
Вопрос:
TLDR — Перейдите к ответу для получения подробной информации о рабочей настройке xUnit или MSTest. xUnit был наименее болезненным вариантом.
Мне не удалось заставить NUnit работать на моем сервере сборки, поэтому я решил попробовать как xUnit, так и MSTest — ни один из них не сработал для меня.
MSTest я просто не получаю — я ожидал, что это сработает, но когда я пытаюсь установить dotnet-test-mstest из nuget, у меня возникают проблемы с зависимостями, поскольку все его зависимые библиотеки несовместимы, например, для netcoreapp1….
Зависимость MSTest.ObjectModel 1.0.1-preview не поддерживает framework .NETCoreApp, версия = v1.0.
MSTest зависимости.TestAdapter.Dotnet 1.0.4-предварительный просмотр не поддерживает framework.
Кто-нибудь может дать какие-либо советы о том, почему это может происходить?
Комментарии:
1. вам нужно показать полученную ошибку и ваш проект json, иначе можно только строить догадки. Кроме того, если вы перейдете к NuGet nuget.org/packages/MSTest . TestAdapter. В Dotnet вы увидите: «Владелец не внес этот пакет в список. Это может означать, что пакет устарел или его больше не следует использовать «. — так что я предполагаю, что это может быть частью вашей проблемы.
2. Я больше не могу предоставить — сообщения об ошибках приведены в моем первоначальном описании. Я просто создаю пустой проект, и это происходит. Ключевая проблема, похоже, заключается в том, что он вообще не устанавливается. Мне интересно, не обновила ли Microsoft тестовую среду в соответствии со всем остальным. Онлайн-информация скудна, и ее очень сложно выделить в разных версиях.
3. Я также видел сообщение без списка, и я думаю, что вы можете быть правы, но оно не указывает, что делать вместо этого.
4. Это: blogs.msdn.microsoft.com/visualstudioalm/2016/05/30 /… говорит мне, что у вас не должно быть прямых ссылок на MSTest.ObjectModel или MSTest. TestAdapter. Dotnet в вашем project.json, но только ссылка на MSTest.TestFramework. Я вижу последнюю версию nuget.org/packages/MSTest.TestFramework/1.0.5-preview отправлено несколько дней назад. Вы пробовали это? В качестве примечания — Asp.NET Основные рамочные проекты ( github.com/aspnet ) используют xUnit.
5. У меня нет прямых ссылок. Ошибка возникает при добавлении dotnet-test-mstest, поскольку несовместимые пакеты являются зависимостями от этого. MSTest. Фреймворк сам по себе никуда не годится, вам нужен dotnet-test-mstest, чтобы иметь возможность запускать тесты.
Ответ №1:
Мне удалось заставить это работать, создав совершенно новые проекты, следуя этим инструкциям…
https://learn.microsoft.com/en-us/dotnet/articles/core/testing/using-mstest-on-windows
Кажется, что проекты MSTest dotnet core должны создаваться как консольные приложения для работы ..?
Чтобы помочь всем остальным, вот project.json, с которым я закончил.
{
"version": "1.0.0-*",
"testRunner": "mstest",
"dependencies": {
"dotnet-test-mstest": "1.1.1-preview",
"MyLibrary": {
"target": "project"
},
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"MSTest.TestFramework": "1.0.4-preview",
"NSubstitute": "2.0.0-rc"
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
Кажется, я делаю 2 ключевые вещи по-разному. Для начала моя ключевая зависимость была ранее…
"NETStandard.Library": "1.6.0"
в то время как в новом project.json это
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
(в исходном project.json это было помещено в раздел frameworks файла в качестве зависимостей).
другой находится в разделе импорта в разделе ‘newtcoreapp1.0’. В исходном project.json я использовал это, включая само себя, тогда как рабочий импортирует dnxcore50 (хотя я все еще не уверен, что это действительно правильно).
Похоже, что есть ошибка с 1.0.5 -предварительный просмотр MSTest.TestFramework — в итоге я сменил версию на более раннюю. С 1.0.5 тесты будут загружаться, но каждый из них завершится ошибкой…
Не удалось загрузить тип ‘LogMessageHandler’ из сборки ‘Microsoft.VisualStudio.Тестовая платформа.Тестовый фреймворк
Я искал где-нибудь, чтобы отправить это как ошибку, но пока не повезло. Если кто-нибудь обнаружит это с теми же проблемами и знает, где его зарегистрировать, пожалуйста, дайте мне знать, и я добавлю » 1″.
Для полноты картины, вот файл project.json, который работает для NUnit (хотя это NUnit 3 и чтение его выходных файлов является (на момент написания) проблемой в VSTS…
{
"dependencies": {
"MyLibrary": {
"target": "project"
},
"NETStandard.Library": "1.6.0",
"NUnit": "3.5.0",
"dotnet-test-nunit": "3.4.0-beta-1"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"netcoreapp1.0",
"portable-net45 win8"
],
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1-*",
"type": "platform"
},
"NSubstitute": "2.0.0-rc"
}
}
},
"testRunner": "nunit",
"version": "1.0.0-*"
}
И вот xUnit — я еще немного поиграю с этим, поскольку он кажется более жизнеспособным на VSTS…
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-build10015",
"NSubstitute": "2.0.0-rc",
"MyLibrary": {
"target": "project"
}
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"imports": [
"dotnet5.4",
"portable-net451 win8"
]
}
}
}
Более полезная информация о xUnit здесь — https://learn.microsoft.com/en-us/dotnet/articles/core/testing/unit-testing-with-dotnet-test
В целом, я обнаружил, что, приняв во внимание работу с VSTS, xUnit был намного проще в использовании — вам просто нужно настроить задачи сервера сборки для использования командной строки dotnet test, а затем использовать задачу публикации тестовых файлов для отображения результатов. После долгих усилий я все еще не мог заставить тестовый запуск MS пройти на сервере сборки.
Комментарии:
1. Вы абсолютно правы насчет 1.0.5-предварительного просмотра MSTest.TestFramework. Я изменил его на 1.0.4, как вы сказали, и все работает нормально. Я не понимаю, почему нет правильной документации о. Сетевое ядро? Некоторые примеры и коды на их сайтах вообще не работают в другой области. В этом руководстве говорилось, что нам нужно использовать «Библиотеку», а не «консольное приложение».
2. Я настоятельно рекомендую использовать xUnit, если это вариант, это было гораздо менее болезненно, чем пытаться получить MSTest. В конце концов, фреймворк работает. Дополнительным преимуществом является кроссплатформенность.
3. Я также поддерживаю комментарий @TTCG. Возникла та же проблема
Ответ №2:
Следовательно, проблема с dotnet-test-mstest 1.1.1-preview и MSTest.TestFramework 1.0.5-preview, поднятая @TTCG, была исправлена в более поздней версии. Не стесняйтесь попробовать это на dotnet-test-mstest 1.1.2-preview и MSTest.TestFramework 1.0.6-preview.
Комментарии:
1. обновление dotnet-test-mstest до версии 1.1.2-preview устранило проблему. Спасибо!