2016-07-19 9 views
5

Как добавить существующие тестовые проекты в контекстное меню правой кнопки мыши для «Создание модульных тестов» в Visual Studio 2015?Как добавить дополнительные тестовые проекты в контекстное меню «Создать единичные тесты» в Visual Studio 2015?

В нем отображается только один из тестовых проектов (проект был создан с использованием контекстного действия правой кнопкой мыши). Другой проект был создан с использованием нового мастера проекта и не показан.

Missing Projects Available Unit Test Projects

Есть ли способ, чтобы добавить существующие модульное тестирование проектов в список?

ответ

1

Я не скованы, какие шаги являются обязательными, но ниже шаги, которые позволили мне добавить существующий проект в Intellitest «Создать тестовый блок» список:

  • Reference Microsoft.Pex.Framework сборка
  • Добавьте файл «PexAssemblyInfo.cs» в специальную папку проекта «Свойства». Редактируйте соответственно.
  • В .csproj файла, добавьте <TestProjectType>"UnitTest"</TestProjectType> тега, в <PropertyGroup> узле
  • В .csproj файла, добавьте <IsCodedUITest>False</IsCodedUITest> тега, в <PropertyGroup> узле (вероятно, не требуется)
  • В .csproj файла, добавьте «{3AC096D0- A1C2-E12C-1390-A8335801FDAB}»(Test тип проекта) в <ProjectTypeGuids> тег

Edit: Примеры PexAssemblyInfo.cs conten t

using Microsoft.Pex.Framework.Coverage; 
using Microsoft.Pex.Framework.Creatable; 
using Microsoft.Pex.Framework.Instrumentation; 
using Microsoft.Pex.Framework.Settings; 
using Microsoft.Pex.Framework.Validation; 

// Microsoft.Pex.Framework.Settings 
[assembly: PexAssemblySettings(TestFramework = "xunit-2.0")] 

// Microsoft.Pex.Framework.Instrumentation 
[assembly: PexAssemblyUnderTest("{YOUR-PROJECT-NAME}")] 
[assembly: PexInstrumentAssembly("System.Runtime.Extensions")] 
[assembly: PexInstrumentAssembly("System.Linq.Expressions")] 
[assembly: PexInstrumentAssembly("System.Threading")] 
[assembly: PexInstrumentAssembly("System.Reflection.Extensions")] 
[assembly: PexInstrumentAssembly("System.Reflection")] 
[assembly: PexInstrumentAssembly("System.Diagnostics.Debug")] 
[assembly: PexInstrumentAssembly("System.Runtime")] 
[assembly: PexInstrumentAssembly("System.Threading.Tasks")] 
[assembly: PexInstrumentAssembly("System.Collections")] 

// Microsoft.Pex.Framework.Creatable 
[assembly: PexCreatableFactoryForDelegates] 

// Microsoft.Pex.Framework.Validation 
[assembly: PexAllowedContractRequiresFailureAtTypeUnderTestSurface] 
[assembly: PexAllowedXmlDocumentedException] 

// Microsoft.Pex.Framework.Coverage 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Runtime.Extensions")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Linq.Expressions")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Threading")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Reflection.Extensions")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Reflection")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Diagnostics.Debug")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Runtime")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Threading.Tasks")] 
[assembly: PexCoverageFilterAssembly(PexCoverageDomain.UserOrTestCode, "System.Collections")] 
+0

Для чего нужен PexAssemblyInfo.cs? – Silthus

+0

Он определяет специфичные для Pex настройки, такие как сборка под тестированием, ссылка на сборку и т. Д. Вы можете скопировать/вставить один из них из автоматически созданного проекта Intellitest. – Alexis

+0

Я не могу найти сборку с именем PEX или аналогичную. Также создание тестового проекта Xunit с помощью мастера не создает файл PexAssemblyInfo.cs. И просто добавление строк TestProjectType и IsCodedUiTest не создает представление projekt в мастере. – Silthus