Reputation: 11586
When I run my tests today with xUnit v2, I typically use a naming convention like:
[Fact(DisplayName= "Method Will Do Something")]
public void Method_Will_Do_Something() { }
What extensibility point can I plug into that will allow me set my test display name based on the naming conventions of my test method?
Upvotes: 8
Views: 3286
Reputation: 2048
Create a custom class for your fact
public sealed class MyFactAttribute : FactAttribute
{
public MyFactAttribute([CallerMemberName] string memberName = null)
{
DisplayName = memberName;
}
}
And use as follows
[MyFact]
public void FileSystemProvider_Sync()
Upvotes: 3
Reputation: 70586
The simplest way: Custom fact attribute, discoverer, and test case.
Example: https://github.com/xunit/samples.xunit/tree/master/RetryFactExample
For your custom test case, derive from XunitTestCase
and override the Initialize()
method. After calling base.Initialize()
, set the DisplayName
property appropriately.
You can see the default behavior for XunitTestCase
here: https://github.com/xunit/xunit/blob/master/src/xunit.execution/Sdk/Frameworks/XunitTestCase.cs
Upvotes: 7