代码之家  ›  专栏  ›  技术社区  ›  Tim Hoolihan

Visual Studio测试中的跟踪(从nunit迁移)

  •  10
  • Tim Hoolihan  · 技术社区  · 17 年前

    在nunit中,我习惯于在测试中编写跟踪语句,并让它们显示在nunit gui的跟踪选项卡中。

    在一个新项目中,我将转到Visual Studio Professional Addition中的内置单元测试,我认为它是mstest.exe的接口。

    测试代码:

    <TestMethod()>
    Public Sub TestPagesInheritFromBasePage()
        Dim webUI As Assembly = Assembly.GetAssembly(GetType(WebUI.BasePage))
        Dim badPages As New List(Of String)
        For Each t As Type In webUI.GetTypes()
            Debug.Write(t.Name + ", ")
            Trace.Write(t.Name + ", ")
            If t.BaseType Is GetType(System.Web.UI.Page) Then badPages.Add(t.Name)
        Next
        Debug.Flush()
        Trace.Flush()
        If badPages.Count > 0 Then
            Assert.Fail("{0}: do not inheriting from BasePage", String.Join(", ", badPages.ToArray()))
        End If
    End Sub
    

    我遇到一个错误,所以我知道调试、写入和跟踪。写入行正在执行。

    我已经阅读了有关编写这些测试的msdn文档,如果在命令行执行,我可以通过以下方式查看跟踪输出:

    mstest.exe /testcontainer:mydll.dll /detail:debugtrace
    

    但是,在Visual Studio中直接执行测试时,找不到跟踪输出。在单元测试期间是否有其他输出信息的首选方法,或者我是否缺少在Visual Studio中查看跟踪信息的选项?

    答: 下面的两个答案(console.write和debug.write)都有效,结果在测试结果详细信息中(底部的测试结果窗格,右键单击测试结果并转到测试结果详细信息)。另外,我在项目属性中设置了调试和跟踪常量。

    4 回复  |  直到 14 年前
        1
  •  10
  •   Michael Alves    17 年前

    通常我使用此方法在Visual Studio的输出窗口中打印某些内容:

    System.Diagnostics.Debug.WriteLine("Message");
    
        2
  •  10
  •   Tim Cooper    15 年前

    试用使用 Console.WriteLine() 相反。我在单元测试中使用它,它工作正常——它在单元测试结果输出窗口中显示文本。

        3
  •  2
  •   bnieland    16 年前

    要查看结果,请双击“测试结果”窗口中的测试(从主菜单项“测试”>>窗口菜单>>测试结果访问)

        4
  •  1
  •   rmoestl    14 年前

    所有先前的答案实际上都是正确的,但需要或多或少的鼠标点击。

    如果您想查看输出 立即无需额外点击 ,只需添加列 调试跟踪 和/或 输出(标准输出) (无论您是使用debug.write还是console.write)到 试验结果 窗格中,右键单击测试结果,然后单击“添加/删除列”。