Con MSTest, è possibile semplicemente creare due progetti di test (assiemi) e specificarne uno solo nella configurazione di configurazione da utilizzare per il test. In MSBuild, questa era la strada da percorrere. Per le nuove definizioni WF-Based costruire, io attualmente non ho un campione a portata di mano:
<ItemGroup>
<!-- TEST ARGUMENTS
If the RunTest property is set to true then the following test arguments will be used to run
tests. Tests can be run by specifying one or more test lists and/or one or more test containers.
To run tests using test lists, add MetaDataFile items and associated TestLists here. Paths can
be server paths or local paths, but server paths relative to the location of this file are highly
recommended:
<MetaDataFile Include="$(BuildProjectFolderPath)/HelloWorld/HelloWorld.vsmdi">
<TestList>BVT1;BVT2</TestList>
</MetaDataFile>
To run tests using test containers, add TestContainer items here:
<TestContainer Include="$(OutDir)\AutomatedBuildTests.dll" />
<TestContainer Include="$(SolutionRoot)\TestProject\WebTest1.webtest" />
<TestContainer Include="$(SolutionRoot)\TestProject\LoadTest1.loadtest" />
Use %2a instead of * and %3f instead of ? to prevent expansion before test assemblies are built
-->
</ItemGroup>
<PropertyGroup>
<RunConfigFile>$(SolutionRoot)\LocalTestRun.testrunconfig</RunConfigFile>
</PropertyGroup>
Suggerimento: per utilizzare una definizione di compilazione generica, chiamiamo tutti i nostri progetti di prova "AutomatedBuildTests", vale a dire non c'è differenza di soluzione. Quindi la definizione di build può essere inclusa in qualsiasi definizione di build esistente (o anche essere comune) che esegue sempre il giusto set di test. Sarebbe un compito facile anteporre un controllo "se esiste" per consentire a una definizione di build di eseguire solo i test quando è presente un assieme di test. Non lo usiamo per ottenere errori di compilazione quando nessun assembly di test è stato trovato poiché vogliamo assolutamente test con tutte quelle build che usano questa definizione.
Qual è il tuo tester? MSTest, NUnit, qualcos'altro (?) – pantelif