如何运行VSTest请管理大量动态项目?

问题描述

在寻求在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测试。使用此任务可以使用Visual Studio Test Runner运行单元和功能测试(Selenium,Appium,编码的UI测试等)。除了基于MSTest的测试之外,还可以执行具有Visual Studio测试适配器的测试框架,例如xUnit,NUnit,Chutzpah。

测试文件支持多行minimatch patterns

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...