2017-01-18 4 views
3

У меня есть приложение ASP.NET Core (NetCoreApp1.1), и я хотел бы протестировать контроллер этого проекта. Я добавил библиотеку классов .NET Core (таргетинг NetStandard1.6).Как протестировать контроллер в .NET Core

Теперь проблема заключается в том, что согласно Why doesn't Microsoft.NETCore.App support netstandard1.6? Я не могу ссылаться на проект веб-API из этой библиотеки классов.

Вопрос в том, означает ли это, что, если контроллеры не будут размещены в другом месте, я больше не смогу их протестировать? Возможно, есть способ сделать это, но я не смог добиться этого в VS 2017 RC.

+0

Почему вы не создаете xunittest проект для запуска тестов? – Woot

+0

Позволит ли это ссылаться на NetCoreApp? –

ответ

3

Испытательные проекты должны быть консольными приложениями, а не библиотеками классов. Консольное приложение ссылается на Microsoft.NETCore.App и не должно иметь никаких проблем со ссылкой на ваш проект веб-API.

Простой пример project.json для рабочего тестового проекта:

{ 
    "dependencies": { 
    "dotnet-test-xunit": "2.2.0-preview2-build1029", 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.1" 
    }, 
    "xunit": "2.1.0", 
    "MyApiProject": { 
     "target": "project" 
    } 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": "dotnet" 
    } 
    }, 
    "testRunner": "xunit", 
} 

Если вы используете .csproj в VS 2017 года, он будет выглядеть по-другому, но принцип должен быть таким же. Проект тестирования может ссылаться на проект API локально и использует тестовый бегун, такой как Xunit, для запуска тестов.

+1

Это сработало и имело смысл. Благодаря! Моя следующая задача - запустить NUnit с VS 2017 RC –