XUnit.net v2 не обнаруживает .NET Core Tests в Visual Studio 2015
Я действительно разочарован этой проблемой. Я уже пробовал изменять номера версий, но тесты не показываются в тестовом проводнике.
В окне тестового вывода я вижу этот вывод
Starting Microsoft.Framework.TestHost [C:\Users\sul\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnx.exe --appbase "path to test project" Microsoft.Framework.ApplicationHost --port 63938 Microsoft.Framework.TestHost --port 63954 list ]
Unable to start Microsoft.Framework.TestHost
========== Discover test finished: 0 found (0:00:36.5471185) ==========
Это так хрупко, иногда тесты показывают, что они исчезают навсегда. Перезапуск VS не помог, переустановка бегуна xunit/xunit тоже не помогла.
В другом тестовом проекте я получил другой результат, но пока не показывает тесты
Starting Microsoft.Framework.TestHost [C:\Users\sul\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnx.exe --appbase "path to project" Microsoft.Framework.ApplicationHost --port 63938 Microsoft.Framework.TestHost --port 64421 list ]
Connected to Microsoft.Framework.TestHost
Discovering tests in 'path to project\project.json'
========== Discover test finished: 0 found (0:00:35.9341416) ==========
Это часть моего project.json
"commands": {
"test": "xunit.runner.dnx"
},
"dependencies": {
"Microsoft.AspNet.Http": "1.0.0-*",
"Microsoft.AspNet.Http.Core": "1.0.0-*",
"Microsoft.AspNet.TestHost": "1.0.0-*",
"Moq": "4.2.1502.911",
"xunit": "2.0.0",
"xunit.runners": "2.0.0"
Ответы
Ответ 1
Мне удается заставить это работать, убедившись, что все пакеты во всех проектах решений ссылаются на одну и ту же версию.
Это произошло со мной, потому что я ссылался на последние версии, как вы можете видеть из project.json.
Еще одна вещь, которую я сделал, никогда не ссылается на отдельные пакеты, которые подходят только для этой цели. Например, в моем бизнес-проекте я создаю промежуточное программное обеспечение, и я ссылался на Microsoft.AspNet.Http, потому что мне не нужен полный пакет MVC. Это вызвало проблемы в тестовом проекте, поэтому я добавил Microsoft.AspNet.MVC в любой проект, который требует какого-либо взаимодействия Http, то есть httpcontext.
Это может быть не идеальное решение, но оно работает для меня. Надеюсь, это поможет кому-то другому испытать ту же проблему.
Ответ 2
У меня были некоторые проблемы с этим при использовании TFS. Настройте его и заработайте на одной машине, перешли на другую. Получив последний код после проверки моих изменений, все было правильно, но тестовый бегун вообще не обнаружил никаких тестов. В итоге простая чистка и восстановление в тестовом проекте зафиксировали его, и теперь он находит тесты.
Это мой проект .json
"dependencies": {
"Xunit": "2.1.0-beta2-*",
"Xunit.runner.dnx": "2.1.0-beta2-*"
},
"commands": {
"test": "xunit.runner.dnx"
},
Обратите внимание на капитал X в Xunit, указанный в зависимостях. Официальные списки документации представлены в нижнем регистре x, но это не работает. Я отправил по электронной почте владельцу репо, чтобы сообщить ему об этом.
EDIT: я говорил с автором XUnit, который заверяет меня, что нижний регистр x работает для него и других, и что это потенциально поврежденный кеш пакетов.
Ответ 3
У меня были некоторые проблемы, но он работает!
"dependencies": {
"Test.ANNe.Compiler": "1.0.0-*",
"xunit.runner.dnx": "2.1.0-beta2-build79"
},
"commands": {
"Test.Console": "Test.Console",
"test": "xunit.runner.dnx"
},
3 вопроса, которые у меня были.
1. У вас может быть только 1 бегун!
2. Тест в команде
3. Убедитесь, что среда компиляции соответствует настройке среды в dnvm
Я отмечаю, что вы используете dnx-clr-win-x86.1.0.0, который является dnx, но не runner dnx.
Ответ 4
Для меня работали следующие зависимости (которые будут предоставлены в project.json) (исходный источник):
"dependencies": {
"System.Collections": "4.0.10-beta-23019",
"System.Linq": "4.0.0-beta-23019",
"System.Threading": "4.0.10-beta-23019",
"System.Runtime": "4.0.10-beta-23019",
"Microsoft.CSharp": "4.0.0-beta-23019",
"xunit": "2.1.0-*",
"xunit.runner.dnx": "2.1.0-*",
"xunit.runner.visualstudio": "2.0.1",
"Microsoft.Framework.TestHost": "1.0.0-*",
"Microsoft.Framework.ApplicationHost": "1.0.0-*"
}
Ответ 5
Обнаруженные аналогичные проблемы и изменение с xunit 2.0.0-rc1 до 2.0.0-beta8 исправили проблему.
Подробнее:
- Проект A (более ранняя версия Microsoft.AspNet.Authentication.Test) работал
- Проект B (мой пользовательский проект) не работал.
Настройка проекта B для использования:
"xunit.runner.aspnet": "2.0.0-aspnet-beta8*"
Вместо:
"xunit.runner.aspnet": "2.0.0-aspnet-*"
Исправлена ошибка. Проект B собирал:
xunit.runner.aspnet (2.0.0-aspnet-rc1-15669)
В проекте A используется следующий проект .json:
{
"compilationOptions": {
"warningsAsErrors": "true"
},
"dependencies": {
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-*",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-*",
"Microsoft.AspNet.Authentication.Google": "1.0.0-*",
"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-*",
"Microsoft.AspNet.Authentication.OAuthBearer": "1.0.0-*",
"Microsoft.AspNet.Authentication.OpenIdConnect": "1.0.0-*",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-*",
"Microsoft.AspNet.DataProtection": "1.0.0-*",
"Microsoft.AspNet.TestHost": "1.0.0-*",
"Moq": "4.2.1312.1622",
"xunit.runner.aspnet": "2.0.0-aspnet-*"
},
"commands": {
"test": "xunit.runner.aspnet"
},
"frameworks": {
"dnx451": {
"dependencies": {
"Shouldly": "1.1.1.1"
}
}
}
}
Используемый проект B:
{
"dependencies": {
"Microsoft.AspNet.Authentication": "1.0.0-*",
"Microsoft.AspNet.Authentication.OAuth": "1.0.0-*",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-*",
"Microsoft.Framework.DependencyInjection": "1.0.0-*",
"Microsoft.AspNet.TestHost": "1.0.0-*",
"Moq": "4.2.1312.1622",
"xunit.runner.aspnet": "2.0.0-aspnet-*"
},
"commands": {
"test": "xunit.runner.aspnet"
},
"frameworks": {
"dnx451": {
"dependencies": {
"Shouldly": "1.1.1.1"
}
}
}
}