如何配置XUnit在Visual Studio 2015测试资源管理器中仅显示方法名称?

49

当在Visual Studio 2015中使用 xunit.runner.visualstudio 版本2.0.1时,测试的名称会完整显示。是否有办法仅显示方法名称?

考虑以下测试:

namespace MySolution.Tests
{
    public class MyTestClass
    {
        [Fact]
        public void ClassUnderTest_WhenDefaultConstructorUsed_SomePropertyIsNotNull()
        {
            *... test code in here*
        }
    }
}

在测试资源管理器中,它显示为:-

MySolution.Tests.MyTestClass.ClassUnderTest_WhenDefaultConstructorUsed_SomePropertyIsNotNull

使用 MSTest/VSTest 将显示为:

ClassUnderTest_WhenDefaultConstructorUsed_SomePropertyIsNotNull

2
请参见下面的答案了解__net-core__相关信息。 - THBBFT
2个回答

73

你也可以使用json添加它。

在你的测试项目的根目录下添加一个名为"xunit.runner.json"的文件。

右键点击该文件,选择属性。对于"复制到输出目录"选项选择"仅当文件较新时"。

然后在文件中输入以下json内容:

{
    "methodDisplay": "method"
}

请注意可能需要1重新启动IDE才能使更改生效。

1Visual Studio 2019需要重新启动IDE。


1
现在在测试资源管理器中阅读起来要容易得多了 - 真是个好发现!在 VS 2017 RTM 中对我很有用。 - SliverNinja - MSFT
1
在我看到这个答案之前,我访问了几次,直到意识到我应该点赞。对此我深表歉意。 - tia
2
请注意:对我而言,为了使更改生效,还需要重新打开项目。 - shytikov
2
我能简单指出一下,这个JSON方法适用于Xamarin IOS测试运行器!:) app.config的那个似乎不起作用。 - WickedW
在我重启Visual Studio 2019专业版后,它对我起作用了。我不知道为什么。 - Jordan Ferr
这只是我的答案的一部分。我正在使用Visual Studio 2022。为了使其工作,我还必须向.csproj文件添加一些配置。有关详细信息,请参阅xUnit配置文档 - Steve Nyholm

62

谢谢Brad!不知道我是怎么错过那个的,而且奇怪的是它与这个线程相矛盾:-https://github.com/xunit/xunit/issues/524 - Wayne Birch
6
我已经尝试使用dnx运行器将'methodDisplay'配置选项设置为'method'。我遵循了此文档http://xunit.github.io/docs/configuring-with-json.html 配置dnx运行器。我的问题是,尽管我预期它应该是[Method],但在测试资源管理器中显示的名称仍然是[Class].[Method]。不过,在控制台中使用'dnx test'命令运行测试时,它似乎按预期工作。 - Nikolaj Dam Larsen
2
@Impero 在你修改了 App.config 后,关闭 VS,进入 %TEMP%\VisualStudioTestExplorerExtensions,删除 xunit... 文件夹并重新启动 VS。 - meze
1
对我不起作用。与Nikolaj Dam Larsen相同。尝试了meze建议的方法。 - VivekDev
3
对于.NET Core,您需要使用https://xunit.github.io/docs/configuring-with-json.html。但是,复制文件存在问题:您需要确保实际更改测试以便在查看更改之前进行完全重新编译!当然,还要将JSON文件的复制设置设置为“始终复制”。 - Structed
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接