gpt4 book ai didi

c# - 使用 vstest.console 基于命名空间运行测试

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:29 26 4
gpt4 key购买 nike

我一直在使用 MsTest.exe 使用这样的命名空间运行测试:

mstest.exe/testcontainer:"MyDllFile.dll"/test:"NameSpace.Folder.Folder1.*"

这很有效,但我需要能够在运行时将参数传递给我的测试,所以我找到了 *.runsetttings 文件及其使用 RunTestParameters 将参数传递给测试并从TestContext 但缺点是我必须非常具体地说明我想运行什么测试,并且必须给它一个特定的方法名称或用逗号分隔的名称来执行测试,如下所示:

vstest.console.exe "MyDllFile.dll"/Settings:"my.runsettings"/Tests:"TestMethod1,TestMethod2"

我也试过 TestCaseFilter 也没有成功:

vstest.console.exe "vstest.console.exe "MyDllFile.dll"/Settings:"my.runsettings"/TestCaseFilter:"TestCategory=MyTestCategory"

对于我如何使用 mstest.exe 和 vstest.console.exe 完成我能做的事情,有人有什么建议吗?

谢谢!!

最佳答案

vstest.console.exe 的文档特别差。这是可能的,但命令行帮助和 MSDN 文档均未说明如何操作。

可用于 TestCaseFilter 设置的选项似乎是特定于适配器的,但对于默认的 MsTest 适配器,以下属性可用于过滤。

Name=<TestMethodDisplayNameName>
FullyQualifiedName=<FullyQualifiedTestMethodName>
Priority=<PriorityAttributeValue>
TestCategory=<TestCategoryAttributeValue>
ClassName=<ClassName> (Valid only for unit tests for Windows store apps, currently not available for classic MSTest)

..使用以下运算符。

= (equals)
!= (not equals)
~ (contains or substring only for string values)
& (and)
| (or)
( ) (paranthesis for grouping)

因此,对于您的目的,以下形式的 TestCaseFilter 就足够了。

/TestCaseFilter:"FullyQualifiedName~ProjectNamespace.Subnamespace.TestClass"

此处有更多信息和示例 http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

关于c# - 使用 vstest.console 基于命名空间运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644596/

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