Azure DevOps - 在netcore/template项目之外时,NUnit测试找不到

3
我按照Azure DevOps文档中有关在构建过程中运行Selenium测试的教程进行操作。我的本地测试在已安装Webdriver的浏览器上正常运行,但是当VSTest任务运行时,它不会从任何带有NUnit属性的内容中解压缩任何测试。现在需要指出几件事情:
  1. 测试项目最初是使用基本的Visual Studio 2017 Unit Test模板和MS Test创建的。
  2. 我更喜欢NUnit,因此正在使用该框架编写/重写测试,而不是使用它创建的MSTest。
我的当前Azure DevOps管道配置: azure devops pipeline 工作本地测试设置:

enter image description here enter image description here

现在,我可以使用NUnit模板轻松添加一个新项目,出于某种原因,这使得Azure构建可以看到这些测试,但这会导致我的项目结构发生变化,并且默认为netcoreapp2.1而不是4.6,然后Azure构建找不到各种东西。
2个回答

1
请按照以下步骤操作,以解决您的问题:
  • 测试文件中不需要添加TestAdapter.dll
  • 取消选中“测试混合包含UI测试”
  • 使用“版本”作为“由工具安装程序安装”的选项来选择测试平台
或者:

有时Azure代理会将dll放置在暂存目录而不是默认工作目录中,您可能需要在$(System.DefaultStagingDirectory)文件夹中搜索测试dll。


虽然testadapter.dll默认已添加,但删除它并没有帮助。我还尝试取消选中“测试混合包含UI测试”,并尝试了各种与测试平台版本相关的组合。这些都没有影响任务找到NUnit测试的能力,我不认为它们有任何关联。 - JWiley

0

通过Visual Studio模板添加新的NUnit项目时,如下所示enter image description here,它将默认框架版本设置为netcoreapp2.1enter image description here

如果我将其更改为我的生成框架(net461),尽管生成状态显示相同的“这些dll将被跳过”消息,但NUnit3Adapter现在已被识别并捕获了NUnit测试:enter image description here


感谢您在此分享解决方案,您可以将其接受为答案,以便其他遇到相同问题的社区成员受益。我们也可以将此线程存档,谢谢。 - Hugh Lin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接