通配符测试容器MSTest的。 可执行程序(wildcard test containers t

2019-08-03 10:24发布

是有可能的通配符testcontainer值传递到命令行mstest.exe而不是手动硬编码多个testcontainer值? 如

Mstest.exe / testcontainer: 测试 .dll文件

我想手动调用MSTEST我们TFS 2012升级template.xaml建立processso tthat它就像一个自动发现方式类似于默认template.xaml运行测试

如果没有这哪是从给定的起始文件夹写入一个蝙蝠脚本来遍历文件夹?

Answer 1:

MSTest不走了testcontainer通配符参数( 看看这里的在命令行选项的参考 )。 然而,可以采取多/ testcontainer参数,如下所示:

mstest.exe /testcontainer:a.test.dll /testcontainer:b.tests.dll

你将不得不提供这些参数的另一种方式。 这可以使用批处理文件来完成,但是MSBuild可能是这更好的选择:

<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:&quot;%(RecursiveDir)%(Filename)%(Extension)&quot;', ' ')"
          />
</Target>

</Project>

(与感谢https://stackoverflow.com/a/2770682/62662的变换)

我保存到一个文件( testall.proj ),并与运行它MSBuild testall.proj ,或创建一个批处理文件来运行它。

还要注意的是MSTEST负载都在同一个应用领域提供testcontainers,因此他们将需要支持同一平台的目标(任何CPU,X86,X64)。



Answer 2:

也可以使用CMD文件通过收集容器通配符成一个单一变量,然后用这个变量扩充运行MSTEST:

call "%VS100COMNTOOLS%vsvars32"
@setlocal enabledelayedexpansion enableextensions
@set list=
@for %%x in (.\Bin\Debug\*Test.dll) do set list=!list! /testcontainer:%%x
@set list=%list:~1%

mstest %list%


文章来源: wildcard test containers to mstest. exe