v2
v3
AOT
Error
xUnit1062
"Theory methods cannot be generic in Native AOT"
Cause
A violation of this rule occurs when a test method decorated with [Theory] is declared as generic in Native AOT.
Reason for rule
When using the reflection-based version of xUnit.net, you can declare a theory method as generic, use the generic type for one of the arguments, and xUnit.net will attempt to resolve the correct generic type at runtime. However, open generics require runtime reflection features that are not available in Native AOT.
How to fix violations
To fix a violation of this rule, remove the generic (and update any parameters that were declared with the generic type to some non-generic type that is compatible with all the data elements).
Examples
Violates
using Xunit;
public class xUnit1062
{
[Theory]
[InlineData(42)]
[InlineData(0L)]
public void TheoryMethod<T>(T value)
{ }
}
Does not violate
using Xunit;
public class xUnit1062
{
[Theory]
[InlineData(42)]
[InlineData(0L)]
public void TheoryMethod(long value)
{ }
}