2017-08-06 14 views
0

フィーチャファイルの手順の1つでVS 2107のspeckFlow(2.1.o)でエラーが発生しました。それはSpecFlowフレームワークの問題に関連するものでしょうか?SpecFlowフィーチャファイルエラー - オブジェクトでIConvertibleを実装する必要があります

しかし、このエラーは他の機能にはありません。彼らは正常に動作しています。 XXXXfeature.csファイル内

enter image description here

エラー:

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 
+0

さらなる調査の後、それは全機能ファイルの問題のようです。この同じエラーのためにシナリオのいずれも機能していません。フィーチャーファイルを再生成しましたが、運はありません。 – SMPH

答えて

0

エラーの理由は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(); 
     } 

基本的に、フィーチャファイルを使用してデータを挿入しようとすると、これを行う必要があります。 その後、同様のタイプのquestionが出ました。私はおそらく問題のために質問を逃した。

+1

バインディングを使用する場合は、TableパラメータではなくIList パラメータを使用する必要があります。 –

+1

TechTalk.SpecFlow.Assist名前空間を見てください:http://specflow.org/documentation/SpecFlow-Assist-Helpers/テーブルを扱うためのヘルパーがあります。 –

関連する問題