【问题标题】:xUnit tests with Azure Functions SDK are not working使用 Azure Functions SDK 的 xUnit 测试不起作用
【发布时间】:2020-04-05 20:59:27
【问题描述】:

我正在尝试对 Azure Functions 项目进行单元测试,但遇到了这个问题:安装 Microsoft.NET.Sdk.Functions NuGet 包后,DLL 的输出目录将更改为子 /bin dir 和 xUnit runner 无法再找到测试 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 目录中照顾它...

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

感谢您的帮助和时间。

【问题讨论】:

    标签: c# azure-functions visual-studio-2019 xunit .net-core-3.1


    【解决方案1】:

    现在添加 Microsoft.NET.Sdk.Functions NuGet 包并运行测试

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

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

    资源:

    Medium

    Docs

    【讨论】:

    • 是的,就是这样!我的错误是在我开始添加其他依赖项之后添加函数项目引用,并且添加整个 Functions SDK 而不是导入每个外部依赖项更容易。我对这个 Core 3.1 框架相当陌生,并没有意识到项目依赖会共享他的。吸取教训,谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 2020-01-24
    • 2018-01-28
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多