MSTest
nimmt keinen Wildcard-Parameter für den Testcontainer (look here for a reference on the command line options). Es kann jedoch mehrere/testcontainer Argumente, wie folgt:
mstest.exe /testcontainer:a.test.dll /testcontainer:b.tests.dll
Sie müssen diese Parameter auf andere Weise liefern. Dies kann mit Hilfe einer Batch-Datei erfolgen, aber MSBuild
kann eine bessere Wahl für diese sein:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="RunMSTest">
<ItemGroup>
<TestAssemblies Include="**\*Tests.dll"/>
</ItemGroup>
<Target Name="RunMSTest">
<Exec Condition=" '@(TestAssemblies)' != ''"
Command="Mstest.exe @(TestAssemblies ->'/testcontainer:"%(RecursiveDir)%(Filename)%(Extension)"', ' ')"
/>
</Target>
</Project>
(mit Dank an https://stackoverflow.com/a/2770682/62662 für die Transformation)
Speicher i in eine Datei (testall.proj
) und Lauf es mit MSBuild testall.proj
, oder erstellen Sie eine Batch-Datei, um es für Sie auszuführen.
Beachten Sie auch, dass mstest lädt alle testcontainers in einer Anwendungsdomäne geliefert, so dass sie die gleiche Plattform Ziel (jede CPU, x86, x64) unterstützen müssen.
ich das denken könnte einfacher gemacht Transformations werden, indem man einfach die Identität Grabbing Eigenschaft jeder Versammlung. Ich hatte auch ein Problem mit Pfaden (Test-DLLs sind nicht direkt unter dem, wo meine Zieldatei gespeichert ist), und das löste auch dieses Problem.