运行 vstest.console.exe 时如何过滤 NUnit 测试

Posted

技术标签:

【中文标题】运行 vstest.console.exe 时如何过滤 NUnit 测试【英文标题】:How can I am filter NUnit tests when running vstest.console.exe 【发布时间】:2021-04-21 07:45:42 【问题描述】:

2

1 我有一套自动化测试(一些使用 SpecFlow,一些使用 NUnit),作为我的 TFS 构建的一部分运行(使用 Visual Studio Online,使用托管构建代理)。

我的一些测试(验收测试,而不是单元测试)无法在构建服务器上执行,因为它们假设了登录系统的用户的凭据。

我希望能够从我的运行中过滤掉这些测试,并运行除本地测试之外的所有测试。

为了实现这一点,我将[Category("LocalOnly")]属性添加到TFS服务器要忽略的测试中,并在构建中设置测试任务(新的预览构建机制)添加如下开关:/TestCaseFilter:"TestCategory!=LocalOnly"。

除非它不起作用,即使我相信它应该。如果我使用等号设置过滤器,它不会运行任何东西,如果我使用不等号,它会运行所有东西。过滤器似乎不起作用。

我还尝试使用 vstest.console.exe 在我的机器上本地运行它,结果完全相同,所以这不是 TFS 的问题)。

根据 Visual Studio 发行说明的 NUnit 适配器,此问题已得到修复,但我没有看到任何证据。

知道如何解决这个问题吗?

【问题讨论】:

嗨@ArslanAsh,进展如何? “dotnet test”命令有效吗? 【参考方案1】:

我还尝试使用 vstest.console.exe 在我的机器上本地运行它,结果完全相同,所以这不是 TFS 的问题。

也许您也可以在本地尝试带有选项“--filter”的“dotnet test”命令,看看它是否可以工作。详情请见here。

dotnet test --filter TestCategory!=LocalOnly

如果可行,请在管道中尝试相同的命令。

如果它也不起作用,我建议您可以在“microsoft/vstest”存储库中报告问题以获得更多帮助。

【讨论】:

以上是关于运行 vstest.console.exe 时如何过滤 NUnit 测试的主要内容,如果未能解决你的问题,请参考以下文章

vstest.console.exe 忽略 app.config

vsts xunit vstest.console.exe失败,返回码为:1

如何从批处理文件中调用VSTEST.CONSOLE.EXE

测试用例在 docker windows 控制台中使用 https 失败 vstest.console.exe

如何将二进制文件从 nuget 包复制到我的输出文件夹?

无法加载文件或程序集不支持操作。 (HRESULT异常:0x80131515)