如何运行VSTest.Console一个动态的项目数?

How to run VSTest.Console a dynamic number of projects?

在我寻求在 Azure DevOps(以前在 Jenkins 上)上设置我们的 CI/CD 管道时,我试图在我的解决方案中执行所有测试(NUnits)。

目前,命令行是:

vstest.console.exe "Solution\MySolution.sln" /Settings:"testSettings.runsettings" /Logger:"trx" /TestAdapterPath:"Solution\packages\NUnit3TestAdapter.3.12.0\build\net35"

之前,在 Jenkins 上,我们执行的是:

nunit3-console.exe Solution\MySolution.sln --config=Debug --agents=1 --result=TestResult.xml;format=nunit2 --timeout=900000 --workers=1

正在查找并且能够找到所有测试。但我认为 Azure DevOps 不支持它。 现在,我正在检查文档:https://docs.microsoft.com/en-us/visualstudio/test/vstest-console-options?view=vs-2017#general-command-line-options

但是我只能想办法列出所有的测试DLL。我认为这是不可接受的,因为:

  1. 我不觉得这很健壮,如果有人添加新的测试程序集, 重命名一个,...我们将没有这些测试的测试结果 这很容易被忽视(我们已经有更多 超过 9000 次测试)
  2. 这里指定了很多DLL,有没有更聪明的方法?

所以我的问题是有没有办法执行解决方案中存在的所有测试? 如果不是,是否至少可以使用某种模式?喜欢*.Test.dll

您可以使用 Visual Studio Test task 而不是命令行来 运行 NUnit 测试。使用此任务 运行 单元和功能测试(Selenium、Appium、编码 UI 测试等),使用 Visual Studio 测试运行程序。除了 MSTest-based 测试之外,还可以执行具有 Visual Studio 测试适配器的测试框架,例如 xUnit、NUnit、Chutzpah。

测试文件支持多行minimatch patterns: