2016-07-11 6 views
2

У меня есть проект, который компилирует, что я хочу протестировать с помощью xUnit. Однако, хотя проект позволяет мне добавлять ссылки и сборки, как только я добавляю оператор using к тестовому классу, я получаю красные squiggly строки, а тип ошибки или пространство имен не может быть найдено. "Почему .NET Core и xUnit не распознают импортированные пространства имен?

Несмотря на то, что xproj проекта, который я хочу протестировать, был добавлен к ссылкам, а пространства имен существуют. Это должно быть то, что я сделал, но я не вижу, что. Используя более ранние версии .net, я добавлял ссылки на тестовые проекты сотни раз без проблем.

Так что же отличает способ работы .NET и почему он не распознает мои пространства имен в моих ссылочных сборках?

Обновление: Я удалил xUnit и получил работу MSTest, но у меня такая же проблема. Таким образом, это может быть особенностью того, как я установил dotnetcore, и ссылки в моих json-файлах больше, чем что-либо еще.

+0

Было бы полезно увидеть ваш «project.json» и соответствующий код. Я предполагаю, что вы не правильно ссылаетесь на свой основной проект из своего тестового проекта. Вы используете 'target: project' в project.json? (См. Пример в моем ответе) –

ответ

1

Эта структура работает для меня в .NET Ядра 1,0:

global.json

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-preview2-003121" 
    } 
} 

SRC/MyLibrary/project.json

{ 
    "dependencies": { }, 
    "frameworks": { 
    "netstandard1.3": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    }, 
    "version": "1.0.0" 
} 

тест/MyLibrary.Test/project.json

{ 
    "dependencies": { 
    "dotnet-test-xunit": "2.2.0-preview2-build1029", 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0" 
    }, 
    "MyLibrary": { 
     "target": "project", 
     "version": "1.0.0" 
    }, 
    "xunit": "2.1.0" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dnxcore50", 
     "portable-net45+win8" 
     ] 
    } 
    }, 
    "testRunner": "xunit", 
    "version": "1.0.0" 
} 

Используя этот каталог и структуру проекта, как проводник Visual Studio Test Explorer, так и dotnet test работают и могут запускать тесты xUnit.

+0

Я вырезал и вставлял ваше предложение json-файлов непосредственно в мой проект, но у меня такая же проблема. Как сын, как я добавляю ссылки на мои типы в тестовом проекте, я получаю красные squiggles под пространствами имен, и я не могу ссылаться на что-либо полезное в моем проекте. Сотрудник предложил, чтобы они прочитали, что xUnit и MSTest еще не работают с импортированными сборками из веб-проектов. Это что-то, что мне нужно для исследования, но если это правда, то его основной faux pas для команды выпуска IMO – Matt

+0

@Matt Что происходит, когда вы запускаете «восстановление в режиме« dotnet »? Что происходит, когда вы компилируете? –

+0

Восстановление завершено отлично. Просто некоторые комментарии о файлах блокировки не меняются, и он также восстанавливает Iisintegration.Tools. Скомпилировать - если импортировать пространства имен с помощью I get CS2046 - ошибки типа или пространства имен. Если я прокомментирую их все в порядке. Основные утверждения работают нормально, независимо от того, что (Assert.Equal (2,2); – Matt

 Смежные вопросы

  • Нет связанных вопросов^_^