And*_*ren 5 mstest visual-studio vstest
如何使用vstest.console.exe运行测试列表?.vsmdi格式提供了一种指定测试列表的方法,但不推荐使用该格式(?).
我可以在命令行上运行一个明确的测试列表,它基本上完全符合我的要求,但如果测试的数量很大(比如几百),那么我将耗尽命令行空间!
vstest.console MyTests.dll /Tests:Test1,Test2
Run Code Online (Sandbox Code Playgroud)
我是不是可以欺骗vstest.console.exe来运行以任何其他方式定义的测试列表?
(编辑:重点)
注意:我不想更改测试代码,例如添加测试类别属性或更改命名方案,因此名称匹配将选择子集.我需要它来运行一系列测试.
我能想到的最好的是在最大命令行长度内运行尽可能多的数量,然后重复直到设置完成,然后合并.但是如果有一些加载遗留vsmdi列表或类似方法的方法,那将会容易得多.
vstest.console MyTests.dll < testnames.txt
vstest.console MyTests.dll /Testlist:testnames.txt
Run Code Online (Sandbox Code Playgroud)
您可以在特定格式的文本文件中列出测试,然后将其提供给vstest.console.exe,就像这样.假设文件名为mytests.orderedtest:
vstest.console mytests.orderedtest
Run Code Online (Sandbox Code Playgroud)
mytests.orderedtest必须采用特定格式.有一种从Visual Studio创建此类测试的简单方法,然后您可以查看内容.
首先,在Visual Studio中,右键单击解决方案资源管理器中的项目,然后选择"添加/有序测试".这将创建一个带有良好UI的orderedtest文件,您可以添加测试.因此,从列表中选择您的测试:Test1,Test2.这将创建一个看起来像这样的文件:
<?xml version="1.0" encoding="UTF-8"?>
<OrderedTest name="mytests" storage="c:\src\MyTests\MyTests.orderedtest" id="ed4d22c5-ab9a-4ebd-954f-65ac4c034338" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<TestLinks>
<TestLink id="14c6766b-c22b-130a-ddb0-53d5ddd6eb1d" name="Test1" storage="..\bin\debug\MyTests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestLink id="24c6766b-c22b-130a-ddb0-53d5ddd6eb1d" name="Test2" storage="..\bin\debug\MyTests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</TestLinks>
</OrderedTest>
Run Code Online (Sandbox Code Playgroud)
如果要在Visual Studio外部手动创建此项,请注意id属性中的GUID很重要.这是使用相同名称的测试在不同的完全限定类名之间进行区分的唯一方法.也就是说,id由namespace + class + method组成.本文解释了它:http://blogs.msdn.com/b/aseemb/archive/2013/10/06/how-to-create-an-ordered-test-programmatically.aspx
这是一个将完全限定的方法名称转换为以下GUID之一的例程:
// convert the test (<Name space name>.<class name>.<test method name>) to a GUID
static Guid GuidFromString(string data)
{
SHA1CryptoServiceProvider provider = new SHA1CryptoServiceProvider();
byte[] hash = provider.ComputeHash(System.Text.Encoding.Unicode.GetBytes(data));
byte[] toGuid = new byte[16];
Array.Copy(hash, toGuid, 16);
return new Guid(toGuid);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8353 次 |
| 最近记录: |