xunit icon indicating copy to clipboard operation
xunit copied to clipboard

Object of type 'System.Int32' cannot be converted to type 'System.Nullable`1[System.Int64]'.

Open cjlebel opened this issue 1 year ago • 1 comments

Description

Just updated xunit and xunit.runner.visualstudio, and now some tests that were working with the previous versions, are throwing an exception saying that they can't convert an int from the InlineData to a long? which is a parameter of the test.

xunit 2.4.1 > 2.4.2 xunit.runner.visualstudio 2.4.3 > 2.4.5

Steps to reproduce

Fails after upgrade [Theory] [InlineData(1)] public void GetUserAsync(long? userId) { Assert.NotNull(userId); }

However, if I specify that the value is a long (1L), it will work [Theory] [InlineData(1L)] public void GetUserAsync(long? userId) { Assert.NotNull(userId); }

Exception

System.ArgumentException Object of type 'System.Int32' cannot be converted to type 'System.Nullable1[System.Int64]'. at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr) at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig) at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Xunit.Sdk.TestInvoker1.CallTestMethod(Object testClassInstance) in //src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 150 at Xunit.Sdk.TestInvoker1.<>c__DisplayClass48_0.<<InvokeTestMethodAsync>b__1>d.MoveNext() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 257 --- End of stack trace from previous location where exception was thrown --- at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func1 asyncAction) in //src/xunit.execution/Sdk/Frameworks/ExecutionTimer.cs:line 48 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) in /_/src/xunit.core/Sdk/ExceptionAggregator.cs:line 90

cjlebel avatar Sep 22 '22 10:09 cjlebel

Duplicate of https://github.com/xunit/xunit/issues/2572

bartelink avatar Sep 22 '22 11:09 bartelink