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"
            }
        }
    }
}