问题描述
在寻求在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的方法。我认为这是不可接受的,因为:
- 如果有人添加了新的测试程序集,我认为它并不强大, 重命名一个,...我们将没有这些测试的测试结果 这很容易在雷达下进行(我们已经有更多 超过9000个测试)
- 要在此处指定很多DLL,必须有一种更聪明的方法?
所以我的问题是有办法执行解决方案中存在的所有测试吗?
如果不是,是否至少可以使用某种模式?像*.Test.dll
解决方法
您可以使用Visual Studio Test task代替命令行来运行NUnit测试。使用此任务可以使用Visual Studio Test Runner运行单元和功能测试(Selenium,Appium,编码的UI测试等)。除了基于MSTest的测试之外,还可以执行具有Visual Studio测试适配器的测试框架,例如xUnit,NUnit,Chutzpah。
测试文件支持多行minimatch patterns: