gpt4 book ai didi

visual-studio - 如何使用 VsTest.Console 运行测试列表

转载 作者:行者123 更新时间:2023-12-04 07:33:48 25 4
gpt4 key购买 nike

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

我可以在命令行上运行一个明确的测试列表,这基本上完全符合我的要求,但是如果测试的数量很大(比如几百个),那么我将耗尽命令行空间!

vstest.console MyTests.dll /Tests:Test1,Test2

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

(编辑:强调)

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

我能想到的最好的方法是在最大命令行长度内尽可能多地运行,并重复直到设置完成,然后合并。但是,如果有某种方法可以加载旧版 vsmdi 列表或类似列表,那就容易多了。
vstest.console MyTests.dll < testnames.txt

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

最佳答案

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

vstest.console mytests.orderedtest

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>

如果您要在 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);
}

关于visual-studio - 如何使用 VsTest.Console 运行测试列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32824191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com