C# 为什么我能';在Visual Studio 2012中运行测试时,是否看不到调试输出?

C# 为什么我能';在Visual Studio 2012中运行测试时,是否看不到调试输出?,c#,visual-studio,visual-studio-2012,C#,Visual Studio,Visual Studio 2012,我对C#和visualstudio(我来自Java)非常陌生,我对visualstudio中的调试工作有以下疑问 所以我有一个单元测试: [TestMethod] public void GetVulnerability() { DataModel.VulnerabilityManager manager = new DataModel.VulnerabilityManager("DefaultConnection"); try

我对C#和visualstudio(我来自Java)非常陌生,我对visualstudio中的调试工作有以下疑问

所以我有一个单元测试:

    [TestMethod]
    public void GetVulnerability()
    {
        DataModel.VulnerabilityManager manager = new DataModel.VulnerabilityManager("DefaultConnection");

        try
        {
            manager.openConnection();


            List<DataModel.Vulnerability.VulnSmall> risultato;

            DataModel.Vulnerability.SearchVuln model = new DataModel.Vulnerability.SearchVuln();
            model.PageSize = 20;
            /*model.Filter.CVE = "CVE-2013-2902(Candidate)";*/

            int numeroRecordsTotali;

            risultato = manager.getList(model, out numeroRecordsTotali);

            foreach (DataModel.Vulnerability.VulnSmall v in risultato ){
                Debug.WriteLine("MY CVE: " + v.CVE + "**");
            }

        }
        finally
        {

            manager.closeConnection();
        }
我不明白的是,当我去执行测试时,点击运行所选测试语音,我看不到必须由前一行编写的测试输出,但如果点击调试所选测试语音,我可以看到它


为什么??如何在Visual Studio调试中显示所需的输出(并且不仅是在测试通过的情况下)?

我认为这与使用
[ConditionalAttribute(“调试”)]
标记的事实有关

出于所有意图和目的,您可能认为它等同于:

public void WriteLine(string message)
{
#if DEBUG
    Console.WriteLine(message);
#endif
}
现在您可能已经猜到了,但是您的测试并没有在调试模式下运行

解决方案

使用
跟踪
类而不是
调试

foreach ( DataModel.Vulnerability.VulnSmall v in risultato )
{
    Trace.WriteLine("MY CVE: " + v.CVE + "**");
}

与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。见”。
foreach ( DataModel.Vulnerability.VulnSmall v in risultato )
{
    Trace.WriteLine("MY CVE: " + v.CVE + "**");
}