我正在尝试对我的C#ASP.NET项目进行单元测试,但需要为所有测试运行一些初始化代码:
[TestClass()]
public class Init
{
[AssemblyInitialize]
public static void initialize()
{
ContextProvider.setContext(new TestContext());
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我在测试之前需要运行的全部内容,但它没有运行.我试图调试我的所有测试并在该行中设置一个断点,但它没有被击中.如果我注释掉[AssemblyInitialize]并运行一个不需要初始化的特定测试,它就会成功运行.但是,使用此行,不会运行任何测试(并且根本没有断点)
我在这里错过了什么?
bie*_*ski 12
这是(我认为)需要检查的完整列表:
Phil1970的有用评论有助于解决问题.
initialize方法的问题是它必须接收TestContext(Microsoft.VisualStudio.TestTools.UnitTesting.TestContext).我找不到任何明确说明这一点的指南/ Microsoft文档,但是这个msdn页面中的示例确实有TestContext作为该方法的输入.
添加后,测试成功运行.在旁注中,我创建了一个类来模拟我需要的一些数据并将其称为TestContext,结果证明这是一个非常糟糕的名称选择,使得理解我的错误变得更加困难.我将它重命名为APITestContext,这是我的固定初始化类.
[TestClass()]
public class Init
{
[AssemblyInitialize()]
public static void initialize(TestContext testContext)
{
ContextProvider.setContext(new APITestContext());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |