SpecFlow 功能文件错误 - 对象必须实现 IConvertible

SpecFlow feature file error - Object must implement IConvertible

我在 VS 2107 中的 SpecFlow (2.1.o) 功能文件中的一个步骤中遇到错误。它应该与 SpecFlow 框架问题有关吗?

但是我在其他功能上没有这个错误。他们工作正常。

XXXXfeature.cs 文件中的错误:

Test method ABC.Api.Bdd.Tests.Features.V2.InstantTrackerFeature.InstantTrackerReturnsA500ErrorResponseWhenErrorScenariosOccur threw exception: 
System.InvalidCastException: Object must implement IConvertible.
    at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(Type typeToConvertTo, Object value, CultureInfo cultureInfo)
   at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(IBindingType typeToConvertTo, Object value, CultureInfo cultureInfo)
   at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.Convert(Object value, IBindingType typeToConvertTo, CultureInfo cultureInfo)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ConvertArg(Object value, IBindingType typeToConvertTo)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.<>c__DisplayClass38_0.<GetExecuteArguments>b__0(Object arg, Int32 argIndex)
   at System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep()
   at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors()
   at ABC.Api.Bdd.Tests.Features.V2.InstantTrackerFeature.ScenarioCleanup()
   at ABC.Api.Bdd.Tests.Features.V2.InstantTrackerFeature.InstantTrackerReturnsA500ErrorResponseWhenErrorScenariosOccur() in C:\ABC.API\ABC.Api.Bdd.Tests\features\v2\InstantTracker.feature:line 36

缺少错误原因StepArgumentTransformation。如下。

[StepArgumentTransformation]
        public IList<MovesStaging> TransformMovesStaging(Table identifiers)
        {
            return identifiers.Rows.Select(row => new MovesStaging
            {
                PartitionKey = ParseTableRowFieldAsString(row, "PartitionKey"),
                RowKey = ParseTableRowFieldAsString(row, "RowKey"),
                Timestamp = ParseTableRowFieldAsTimeStampUtc(row, "Timestamp"),
                Status = ParseTableRowFieldAsString(row, "Status"),
                ExpiryDate = ParseTableRowFieldAsDateTimeUtc(row, "ExpiryDate")
            }).ToList();
        }

基本上,每当您尝试通过功能文件插入数据时,您都需要这个。 之后我遇到了类似类型的 。我错过了这个问题,可能是因为主题。