ASP.Net MVC中的Debuggin UnitTests

时间:2010-01-25 18:01:14

标签: asp.net-mvc unit-testing debugging

我在ASP.Net MVC中调试单元测试时遇到问题。每当我尝试调试选定的测试时,我设置的断点都会变成一个带有警告标志的空心圆。当我将鼠标悬停在它上面时,我收到以下错误:

“断点当前不会被命中。此文档没有加载任何符号。”

我在MSDN上搜索了这个错误,其中一个原因似乎是无法找到匹配的符号,因此断点无法从源代码映射到机器代码。我不知道该怎么做。

  • 这些符号是什么?
  • 我该如何创建它们?
  • 他们应该是 自动生成?

作为旁注,我可以调试我的常规项目。此错误似乎只影响我的项目的单元测试。谢谢你的帮助。

更新

@jamesaharvey - 是的,到目前为止,我已经尝试使用相同的结果调试我的几个测试,带有警告标志的空心调试圈。

样品测试:

    /// <summary>
    ///A test for RequestForm with an existing user
    ///</summary>
    [TestMethod()]
    [HostType("ASP.NET")]
    [AspNetDevelopmentServerHost("C:\\projects\\webDirectoryCorrectionRequest\\trunk\\WebDirectoryCorrectionRequest\\WebDirectoryCorrectionRequest", "/")]
    [UrlToTest("http://localhost:54191/")]
    public void RequestFormTest_2()
    {
        //Create Controller
        var controller = new FormController();

        //Create fake controller context
        var formParams = new NameValueCollection { { "CN", "Swanson,Judith A" }, { "Type", "SNF" } };
        controller.ControllerContext = new FakeControllerContext(controller, formParams);

        //FormController target = new FormController();
        var actual = controller.RequestForm() as ViewResult;
        Assert.AreEqual("RequestForm", actual.ViewName);
    }

1 个答案:

答案 0 :(得分:2)

看看这是否有帮助:http://forums.asp.net/p/1246417/2291629.aspx

[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
    System.Diagnostics.Debugger.Launch();
}

实际上只是google for http://www.google.com/search?q=AspNetDevelopmentServerHost+attach,似乎是一个非常常见的问题。