Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在VisualStudio控制台中输出以调试模式运行的当前单元测试的名称_C#_.net_Visual Studio_Unit Testing_Integration Testing - Fatal编程技术网

C# 如何在VisualStudio控制台中输出以调试模式运行的当前单元测试的名称

C# 如何在VisualStudio控制台中输出以调试模式运行的当前单元测试的名称,c#,.net,visual-studio,unit-testing,integration-testing,C#,.net,Visual Studio,Unit Testing,Integration Testing,我想调试几个测试的启动,并在控制台中查看来自它们的消息。但是,我无法确定每条消息属于哪个测试。有一个带有[AssemblyInitialise]属性的方法,但它只执行一次。有一个属性为[TestInitialize]的方法,但它只对一个类的测试执行,我不知道如何在此处理程序中获取当前测试的名称 [澄清] 我使用MsTest进行集成测试。如果解决方案需要,我可以切换到Nunit。您应该检查此答案 我想它能满足你的需要。 为了知道记录的输出来自何处,只需在此处列出的GetCurrentMethod的

我想调试几个测试的启动,并在控制台中查看来自它们的消息。但是,我无法确定每条消息属于哪个测试。有一个带有[AssemblyInitialise]属性的方法,但它只执行一次。有一个属性为[TestInitialize]的方法,但它只对一个类的测试执行,我不知道如何在此处理程序中获取当前测试的名称

[澄清]


我使用MsTest进行集成测试。如果解决方案需要,我可以切换到Nunit。

您应该检查此答案

我想它能满足你的需要。 为了知道记录的输出来自何处,只需在此处列出的GetCurrentMethod的输出前加上前缀。为了方便,我会把它重新贴在这里

[MethodImpl(MethodImplOptions.NoInlining)]
public string GetCurrentMethod ()
{
    StackTrace st = new StackTrace ();
    StackFrame sf = st.GetFrame (1);

    return sf.GetMethod().Name;
}

如果您只需要查看是什么导致测试失败,请注意,在测试资源管理器中选择失败的测试将显示失败的堆栈跟踪。

欢迎使用!在这个网站上,你应该尝试自己编写代码。在做了更多的研究之后,如果你有问题,你可以把你尝试过的东西贴出来,清楚地解释什么不起作用,并提供一个答案。我建议阅读。祝你好运如果您转到顶部菜单并查看Test=>Windows=>TestExplorer,新窗口将出现,并显示所有运行的测试、它们的结果以及任何失败的详细信息。通常,您的测试应该在几毫秒内运行,因此将它们写入Visual Studio中的控制台不会有太大帮助。@krillgar谢谢。我使用集成测试。它们很长。谢谢你的回答。但我不想在每个方法中插入调用GetCurrentMethod()。我需要定义处理程序来运行每个测试。