如果我在Visual Studio中运行单元测试:
我想只显示方法名称。我已经看到了you can specify a setting in the App.config to show just the method name,但这是基于App.config。
如何在.NET Core中执行相同的操作,它具有完全不同的配置模型?
答案 0 :(得分:5)
根据official docs,您可以为.Net Core
应用提供json
个名为
等文件扩展名
xunit.runner.json
或<AssemblyName>.xunit.runner.json
,其中<AssemblyName>
是单元测试程序集的名称,没有.dll
或.exe
如果您的单元测试DLL将全部放在同一个输出文件夹中,您只需要使用这个更长的名称格式,并且您需要消除各种配置文件的歧义。
特定于程序集的文件名优先于非特定文件名;文件之间存在没有合并值。
支持的配置项是(配置元素放在顶级对象中):
methodDisplay
设置此项以覆盖测试用例的默认显示名称。如果将其设置为method
,则显示名称将只是方法(没有类名);如果将此值设置为classAndMethod
,则默认显示名称将是完全限定的类名称和方法名称
JSON模式类型:枚举
默认值:classAndMethod
修改:正如您在文档中看到的那样,只有两个选项:classAndMethod
和method
。根据github问题#524
,Xunit API中的类名和命名空间没有区别,因此您需要找到一种解决方法。
例如,this answer方法:
public class MyFactAttribute : FactAttribute
{
public MyFactAttribute([CallerMemberName] string memberName = null)
{
DisplayName = memberName;
}
}
一些有用的链接:
#759
Pretty
显示测试用例的名称实施,PR #828