使用 Azure Functions SDK 的 xUnit 测试不起作用

xUnit tests with Azure Functions SDK are not working

我正在尝试对 Azure Functions 项目进行单元测试,但我 运行 遇到了这个问题:一旦我安装了 Microsoft.NET.Sdk.Functions NuGet 包,DLL 的输出目录就会更改为子 /bin 目录和 xUnit 运行ner 无法再找到测试 DLL。

重现步骤如下:

  1. 创建一个仅包含 xUnit 项目的新解决方案(我们将其命名为 "xUnitTests"),
  2. 在创建的单元测试中放一个Assert.True(true);
  3. 运行 测试:一切顺利,测试有效,
  4. 现在添加 Microsoft.NET.Sdk.Functions NuGet 包和 运行 测试,
  5. 这次忽略了...

从日志中我得到的是构建输出目录从

$(SourceDirectory)\xUnitTests\xUnitTests\bin\Debug\netcoreapp3.1\

$(SourceDirectory)\xUnitTests\xUnitTests\bin\Debug\netcoreapp3.1\bin\

所以 xUnit.runner.visualstudio 没有找到 xUnitTests.dll 因为它继续在第一个目录中而不是在新的 .\bin 中查找它...

有人有解释、解决方案或解决方法吗? (除了使用构建后事件将整个目录复制到预期位置)

感谢您的帮助和抽出时间。

Now add the Microsoft.NET.Sdk.Functions NuGet package and run the test

AFAIK,您不应该将 Microsoft.NET.Sdk.Functions 包添加到您的 xUnit 项目中。相反,请按照以下步骤操作。

  • 您已有一个 Azure Functions 项目。
  • 创建一个新的 xUnit 测试项目。
  • 现在添加函数项目作为对测试项目的引用。
  • 现在您可以根据您的用例编写测试。

资源:

Medium

Docs