首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用VsTest.Console运行测试列表

如何使用VsTest.Console运行测试列表
EN

Stack Overflow用户
提问于 2015-09-28 13:24:20
回答 1查看 14.1K关注 0票数 8

如何使用vstest.console.exe运行测试列表?.vsmdi格式提供了一种指定测试列表的方法,但该格式被废弃(?)。

我可以在命令行上运行一个明确的测试列表,这基本上就是我想做的事情,但是如果测试的数量很大(比如几百个),那么我就没有命令行空间了!

代码语言:javascript
复制
vstest.console MyTests.dll /Tests:Test1,Test2

我没有办法让vstest.console.exe运行以任何其他方式定义的测试列表吗?

(编辑:强调)

注意:我不想更改测试代码,例如添加测试类别属性或更改命名方案,以便名称匹配将选择子集。我需要它来运行一个测试列表.

我能想到的最好的方法是在最大命令行长度内尽可能多地运行,然后重复,直到集合完成,然后合并。但是,如果有某种方式来加载遗留的vsmdi列表或类似的内容,那就容易得多了。

代码语言:javascript
复制
vstest.console MyTests.dll < testnames.txt

vstest.console MyTests.dll /Testlist:testnames.txt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 22:17:12

您可以在特定格式的文本文件中列出测试,然后将其输入vstest.console.exe,如下所示。假设文件名为mytests.orderedtest:

代码语言:javascript
复制
vstest.console mytests.orderedtest

mytests.orderedtest必须采用特定的格式。有一种简单的方法可以从Visual创建这样的测试,然后您可以查看内容。

首先,在Visual中,右键单击解决方案资源管理器中的项目,然后选择添加/有序测试。这将创建一个具有良好UI的orderedtest文件,您可以添加测试。因此,从列表中选择您的测试: Test1,Test2。它将创建一个如下所示的文件:

代码语言:javascript
复制
<?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>

如果您要在Visual之外手动创建此函数,请注意id属性中的GUID非常重要。这是使用相同名称的测试在不同的完全限定类名之间进行区分的唯一方法。也就是说,id是由namespace+class+method组成的。本文解释了它的https://web.archive.org/web/20160121132144/http://blogs.msdn.com/b/aseemb/archive/2013/10/06/how-to-create-an-ordered-test-programmatically.aspx

下面是一个例程,它将完全限定的方法名称转换为以下GUID之一:

代码语言:javascript
复制
// 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); 
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32824191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档