non ho immobilizzato quali fasi sono obbligatori, ma al di sotto sono i passi che mi hanno permesso di aggiungere un progetto esistente al Intellitest "Crea Unit Test" lista:
- Riferimento
Microsoft.Pex.Framework
assemblaggio
- Aggiungere il file "PexAssemblyInfo.cs" nella cartella speciale del progetto Proprietà. Modifica di conseguenza.
- In CSPROJ, aggiungere tag
<TestProjectType>"UnitTest"</TestProjectType>
, in <PropertyGroup>
nodo
- In CSPROJ, aggiungere tag
<IsCodedUITest>False</IsCodedUITest>
, in <PropertyGroup>
nodo (probabilmente non richiesto)
- In Csproj file, aggiungere "{3AC096D0- A1C2-E12C-1390-A8335801FDAB}"(test tipo di progetto) per
<ProjectTypeGuids>
tag
Modifica: PexAssemblyInfo.cs campione 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")]
A cosa serve PexAssemblyInfo.cs? – Silthus
Definisce le impostazioni specifiche per Pex, come l'assemblaggio sotto test, l'assemblaggio referenziato e così via. Puoi copiare/incollare uno di questi da un progetto Intellitest generato automaticamente. – Alexis
Non riesco a trovare un Assemblaggio che si chiami PEX o simile. Inoltre, la creazione di un progetto di test Xunit tramite la procedura guidata non crea un file PexAssemblyInfo.cs. E l'aggiunta delle linee TestProjectType e IsCodedUiTest non rende il projekt show nella procedura guidata. – Silthus