xUnit.net v2 не обнаруживает тесты .NET Core в 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 runner тоже не помогла.

В другом тестовом проекте я получил другой результат, но тесты все еще не показывают

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"

person Sul Aga    schedule 31.05.2015    source источник
comment
Я знаю, что вы отметили это как ответ, но вы случайно не используете ReSharper? Я исправил эту проблему, установив расширение запуска тестов xUnit для ReSharper и перезапустив Visual Studio.   -  person dball    schedule 21.07.2015
comment
Спасибо за ваш комментарий. Нет, я не использую Resharper   -  person Sul Aga    schedule 22.07.2015


Ответы (5)


У меня только что были некоторые проблемы с этим при использовании TFS. Настроил его и заработал на одной машине, перешел на другую, получил последний код после проверки моих изменений, все показывалось правильно, но средство запуска тестов вообще не нашло никаких тестов. В конце концов, простая очистка и перестроение в тестовом проекте исправили это, и теперь он находит тесты.

Это мой проект.json

"dependencies": { "Xunit": "2.1.0-beta2-*", "Xunit.runner.dnx": "2.1.0-beta2-*" }, "commands": { "test": "xunit.runner.dnx" },

Обратите внимание на заглавную букву X в Xunit, указанном в зависимостях. В официальных списках документации используется строчная буква x, но это не работает. Я отправил электронное письмо владельцу репо, чтобы сообщить ему об этом.

РЕДАКТИРОВАТЬ: я разговаривал с автором XUnit, который уверяет меня, что строчная буква x работает для него и других и что это потенциально поврежденный кеш пакетов.

person BenM    schedule 11.06.2015
comment
И если у вас поврежден кэш пакетов, как вы это исправите? Мне также сказали, что в Visual Studio есть некоторые повреждения, которые можно устранить, очистив папку% TEMP% - person Warren P; 30.07.2015

Мне удалось заставить это работать, убедившись, что все пакеты во всех проектах решений ссылаются на одну и ту же версию.

Это произошло со мной, потому что я ссылался на последние версии, как вы можете видеть из project.json.

Еще одна вещь, которую я сделал, это никогда не ссылаться на отдельные пакеты, которые подходят только для этой цели. Например, в моем бизнес-проекте я создаю промежуточное программное обеспечение и ссылаюсь на Microsoft.AspNet.Http, потому что мне не нужен полный пакет MVC. Это вызвало проблемы в тестовом проекте, поэтому я добавил Microsoft.AspNet.MVC в любой проект, которому требуется какое-либо взаимодействие Http, то есть httpcontext.

Это может быть не идеальное решение, но оно сработало для меня. Я надеюсь, что это поможет кому-то еще столкнуться с той же проблемой.

person Sul Aga    schedule 31.05.2015

У меня были некоторые проблемы, но я заработал!

"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 runner.

person user1496062    schedule 02.06.2015

Следующие зависимости (которые должны быть предоставлены в 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-*"
}
person Ashraf Alam    schedule 30.07.2015
comment
у меня работала только обновленная версия для xunit до 2.2.0-* - person zabulus; 15.05.2016

Возникли похожие проблемы, и переход с 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"
            }
        }
    }
}
person Eric Patrick    schedule 01.10.2015