NCrunch does not seem to correctly detect all tests when using non-primitive type input parameters - the following code will show within NCrunch as a single test with no input arguments -
public class TestClass
{
private readonly string _input;
public TestClass(string input)
{
_input = input;
}
public override string ToString()
{
return _input;
}
}
public static IEnumerable<object[]> TestData
{
get
{
yield return new object[] { new TestClass("A")};
yield return new object[] { new TestClass("B")};
yield return new object[] { new TestClass("C")};
yield return new object[] { new TestClass("D")};
}
}
[Theory(DisplayName = "Custom Test ")]
[MemberData("TestData")]
public void Test(TestClass input) { }
This shows up as:
NCrunch:
XUnit:
- Custom Test (input: A)
- Custom Test (input: B)
- Custom Test (input: C)
- Custom Test (input: D)