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();
}
基本上,每当您尝试通过功能文件插入数据时,您都需要这个。
之后我遇到了类似类型的 。我错过了这个问题,可能是因为主题。
我在 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();
}
基本上,每当您尝试通过功能文件插入数据时,您都需要这个。
之后我遇到了类似类型的