c# - Microsoft.NET.Sdk.Functions 和 xunit.runner.visualstudio 不兼容
问题描述
我有一个 Azure Functions v2 库,我正在使用 xunit 2.4.1 编写单元测试。我似乎在 Microsoft.NET.Sdk.Functions 1.0.29 和 xunit.runner.visualstudio 2.4.1 之间存在冲突。
问题是,当单元测试项目引用 Microsoft.NET.Sdk.Functions 时,构建输出路径会更改为在其中包含一个额外的bin\
文件夹:
没有对 Microsoft.NET.Sdk.Functions 的引用,输出程序集位于:
bin\Debug\netcoreapp2.1\unittests.dll
添加对 Microsoft.NET.Sdk.Functions 的引用后,输出程序集位于(相对于项目文件夹):
bin\Debug\netcoreapp2.1\bin\UnitTests.dll
不幸的是,测试运行器似乎总是在 寻找单元测试程序集bin\Debug\netcoreapp2.1\UnitTests.dll
,如错误消息所示:
Could not find file UnitTests\bin\Debug\netcoreapp2.1\UnitTests.dll.
我尝试了以下方法,但都没有解决问题:
- 在 2.1、2.2 和 3.0 之间更改目标框架。这没有什么不同
- 在项目设置中指定输出路径。
bin
仍然添加了无关文件夹。 - 添加
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
到单元测试项目中,但所做的只是删除路径的 netcoreapp2.1 部分。
有什么我可以做的解决方法来让测试运行器在 VS 中工作吗?
如果我要报告一个错误,我应该选择哪一个:
- Visual Studio 中的错误(向测试运行程序提供错误的二进制路径)?
- 测试运行程序中的错误(获取输出目录的错误路径?
- Microsoft.NET.Sdk.Functions 库中的错误(将不需要的路径附加到输出文件夹)?
解决方案
推荐阅读
- listview - Flutter ListTile 前导图和标题对齐
- python - 在 Python 中,如何从 Json 响应中获取特定字段?
- c - 为什么用scanf读取字符串后整数变量的值会发生变化?
- apache-spark - 如何在安装 spark 2.4.4 后尝试运行 pyspark 时修复“TypeError:需要整数(获取类型字节)”错误
- java - 导入 com.google.api 无法解决
- python - Paramiko 频道发送请求以远程启动跟踪
- c - C 字符无缘无故地加起来
- visual-studio - 从 VS WSL 构建事件中获取输出
- javascript - 在 iOS 移动版 Safari 13(iPhone X 和 11)中隐藏全屏 Web 应用程序的状态/位置栏
- java - 扫描输入并再次启动循环或关闭它