Я не скованы, какие шаги являются обязательными, но ниже шаги, которые позволили мне добавить существующий проект в 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")]
Для чего нужен PexAssemblyInfo.cs? – Silthus
Он определяет специфичные для Pex настройки, такие как сборка под тестированием, ссылка на сборку и т. Д. Вы можете скопировать/вставить один из них из автоматически созданного проекта Intellitest. – Alexis
Я не могу найти сборку с именем PEX или аналогичную. Также создание тестового проекта Xunit с помощью мастера не создает файл PexAssemblyInfo.cs. И просто добавление строк TestProjectType и IsCodedUiTest не создает представление projekt в мастере. – Silthus