gpt4 book ai didi

C# AssemblyInitialize 未运行

转载 作者:行者123 更新时间:2023-11-30 14:07:22 25 4
gpt4 key购买 nike

我正在尝试对我的 C# ASP.NET 项目进行单元测试,但需要为所有测试运行一些初始化代码:

[TestClass()]
public class Init
{

[AssemblyInitialize]
public static void initialize()
{
ContextProvider.setContext(new TestContext());
}
}

这就是我在测试之前需要运行的所有内容,但它没有运行。我试图调试我所有的测试并在该行中放置一个断点但它没有被击中。如果我注释掉 [AssemblyInitialize] 并运行一个不需要此初始化的特定测试,它会成功运行。然而,有了这一行,没有测试运行(也没有断点)

我在这里错过了什么?

最佳答案

Phil1970 的有用评论有助于解决问题。

初始化方法的问题在于它必须接收 TestContext (Microsoft.VisualStudio.TestTools.UnitTesting.TestContext)。我找不到任何明确说明这一点的指南/Microsoft 文档,但是 this msdn page 中的示例确实有 TestContext 作为方法的输入。

添加后,测试成功运行。附带一提,我创建了一个类来模拟我需要的一些数据,并将其命名为 TestContext,事实证明这是一个非常糟糕的名称选择,并且更难以理解我的错误。我将它重命名为 APITestContext,这是我固定的初始化类。

[TestClass()]
public class Init
{

[AssemblyInitialize()]
public static void initialize(TestContext testContext)
{
ContextProvider.setContext(new APITestContext());
}
}

关于C# AssemblyInitialize 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41465239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com