xUnit.net v2 не обнаруживает основные тесты.NET в 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) ==========
Это часть моего проекта. 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"
5 ответов
Мне удалось заставить это работать, убедившись, что все пакеты во всех проектах решения ссылаются на одну и ту же версию.
Это случилось со мной, потому что я ссылался на последние версии, как вы можете видеть из project.json.
Еще одна вещь, которую я сделал, никогда не ссылается на отдельные пакеты, которые соответствуют только цели. Например, в моем бизнес-проекте я создаю промежуточное программное обеспечение и ссылаюсь на Microsoft.AspNet.Http, потому что мне не нужен полный пакет MVC. Это вызвало проблемы в тестовом проекте, поэтому я добавил Microsoft.AspNet.MVC в любой проект, который требует какого-либо взаимодействия Http, например httpcontext.
Возможно, это не идеальное решение, но оно сработало для меня. Я надеюсь, что это помогает кому-то другому, испытывающему ту же проблему.
У меня только что были некоторые проблемы с этим при использовании TFS. Настроил его и заставил работать на одной машине, перешел на другую, получил последний код после проверки моих изменений, все показывалось правильно, но бегущий тест вообще не нашел никаких тестов. В конце концов, простая очистка и повторная сборка проекта Test исправили его, и теперь он находит тесты.
Это мой проект. Json
"dependencies": {
"Xunit": "2.1.0-beta2-*",
"Xunit.runner.dnx": "2.1.0-beta2-*"
},
"commands": {
"test": "xunit.runner.dnx"
},
Обратите внимание на заглавную букву X в Xunit, указанную в зависимостях. Официальная документация списки в нижнем регистре х, но это не работает. Я написал владельцу репо по электронной почте, чтобы он знал об этом.
РЕДАКТИРОВАТЬ: Я говорил с автором XUnit, который уверяет меня, что строчная буква x работает для него и других, и что это потенциально поврежденный кеш пакета.
У меня были некоторые проблемы, но все заработало!
"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, но не бегуном dnx.
Обнаружил похожие проблемы, и переход с 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-*"
Исправлена проблема. Проект Б набирал:
xunit.runner.aspnet (2.0.0-aspnet-rc1-15669)
Проект A использовал следующий файл project.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"
}
}
}
}
Проект Б использовал:
{
"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"
}
}
}
}
Следующие зависимости (должны быть предоставлены в 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-*"
}