将 TestCaseFilter 与 VSTest 和本机单元测试结合使用
Using TestCaseFilter with VSTest and Native Unit Tests
我无法 运行 使用按类别排除某些测试的 /TestCaseFilter 进行 vstest。如果我在 Visual Studio 2017 中使用 "Test Explorer" 并按 "Traits" 过滤它工作正常但最终我希望能够编辑 TFS 构建定义并从 [=42= 中排除某些测试]在构建服务器上。
我使用下面的示例将 "TestCategory" 属性添加到某些测试:
http://www.ademiller.com/blogs/tech/2014/04/test-categories-for-visual-c/
我尝试了各种版本的命令行,但无法让 vstest 识别我的 "TestCategory" 过滤器:
https://github.com/Microsoft/vstest-docs/blob/master/docs/filter.md
https://docs.microsoft.com/en-us/visualstudio/test/vstest-console-options?view=vs-2019
vstest.console.exe /TestCaseFilter:"TestCategory=Slow" "D:\MyStuff\Project.Tests.dll" /Platform:x64 /InIsolation'
我收到以下错误:
没有测试与 D:\MyStuff\Project.Tests.dll"
中给定的测试用例过滤器 TestCategory=Slow
匹配
我试过转义字符、不同类型的引号、括号,但都没有用。如果我将过滤器设置为 "TestCategory!=Slow",所有测试都将执行,即使是较慢的测试!
感谢任何帮助。谢谢。
已经两年多了,但这终于奏效了。
在头文件中,我声明如下:
#define EXPENSIVE_TEST_METHOD(name) \
BEGIN_TEST_METHOD_ATTRIBUTE(name) \
TEST_OWNER(L"Expensive") \
END_TEST_METHOD_ATTRIBUTE() \
TEST_METHOD(name)
然后我可以在单元测试中使用 EXPENSIVE_TEST_METHOD
代替 TEST_METHOD
。
我们现在使用 Azure DevOps Server 2019,所以在 Visual Studio 测试任务中,我现在可以在 CI 构建上添加以下测试过滤器:
在命令行上,您现在可以执行如下操作:
vstest.console.exe "%MyTestProjectDll%" /Platform:x64 /InIsolation /TestCaseFilter:"Owner!=Expensive"
我无法 运行 使用按类别排除某些测试的 /TestCaseFilter 进行 vstest。如果我在 Visual Studio 2017 中使用 "Test Explorer" 并按 "Traits" 过滤它工作正常但最终我希望能够编辑 TFS 构建定义并从 [=42= 中排除某些测试]在构建服务器上。
我使用下面的示例将 "TestCategory" 属性添加到某些测试: http://www.ademiller.com/blogs/tech/2014/04/test-categories-for-visual-c/
我尝试了各种版本的命令行,但无法让 vstest 识别我的 "TestCategory" 过滤器:
https://github.com/Microsoft/vstest-docs/blob/master/docs/filter.md
https://docs.microsoft.com/en-us/visualstudio/test/vstest-console-options?view=vs-2019
vstest.console.exe /TestCaseFilter:"TestCategory=Slow" "D:\MyStuff\Project.Tests.dll" /Platform:x64 /InIsolation'
我收到以下错误: 没有测试与 D:\MyStuff\Project.Tests.dll"
中给定的测试用例过滤器TestCategory=Slow
匹配
我试过转义字符、不同类型的引号、括号,但都没有用。如果我将过滤器设置为 "TestCategory!=Slow",所有测试都将执行,即使是较慢的测试!
感谢任何帮助。谢谢。
已经两年多了,但这终于奏效了。
在头文件中,我声明如下:
#define EXPENSIVE_TEST_METHOD(name) \
BEGIN_TEST_METHOD_ATTRIBUTE(name) \
TEST_OWNER(L"Expensive") \
END_TEST_METHOD_ATTRIBUTE() \
TEST_METHOD(name)
然后我可以在单元测试中使用 EXPENSIVE_TEST_METHOD
代替 TEST_METHOD
。
我们现在使用 Azure DevOps Server 2019,所以在 Visual Studio 测试任务中,我现在可以在 CI 构建上添加以下测试过滤器:
在命令行上,您现在可以执行如下操作:
vstest.console.exe "%MyTestProjectDll%" /Platform:x64 /InIsolation /TestCaseFilter:"Owner!=Expensive"