2017-02-06 3 views
1

Я пытаюсь вызывать шаг из определения шага, но я получаю SpecFlowException, когда я это делаю.Шаг вызова с помощью специальных шагов из определения шага throws TechTalk.SpecFlow.SpecFlowException: контейнер класса шагов не был инициализирован

Посмотрите на следующий пример:

[Binding] 
public class MySteps: Steps 
{ 
    [Given("Doing some actions, getting (.*) and (.*)")] 
    public void DoingSomeActionsGettingValueAndOtherValue(int a, int b) 
    { 
     Given($"I pass first integer {a} and second integer {b}"); 
    } 

    [Given(@"I pass first integer (.*) and second integer (.*)")] 
    public void ThenIPassFirstIntegerValueAndSecondIntegerValue(int a, int b) 
    { 
     AreEqual(a, b); 
    } 
} 

Исключением является следующее:

-> error: Container of the steps class has not been initialized! 
TechTalk.SpecFlow.SpecFlowException: Container of the steps class has not been initialized! 
    at TechTalk.SpecFlow.Steps.AssertInitialized() 
    at TechTalk.SpecFlow.Steps.get_TestRunner() 
    at TechTalk.SpecFlow.Steps.Given(String step) 

Может кто-нибудь объяснить, почему я получаю эту конкретную ошибку и как это исправить? Я не мог найти большую помощь в документации.

ответ

0

Я попытался воспроизвести вашу ошибку в новом проекте, но мне это удалось.

Мой класс specflow копируется из твоего:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using NUnit.Framework; 
using TechTalk.SpecFlow; 

namespace ClassLibrary3 
{ 
    [Binding] 
    public class MySteps : Steps 
    { 
     [Given("Doing some actions, getting (.*) and (.*)")] 
     public void DoingSomeActionsGettingValueAndOtherValue(int a, int b) 
     { 
      Given($"I pass first integer {a} and second integer {b}"); 
     } 

     [Given(@"I pass first integer (.*) and second integer (.*)")] 
     public void ThenIPassFirstIntegerValueAndSecondIntegerValue(int a, int b) 
     { 
      Assert.AreEqual(a, b); 
     } 
    } 
} 

И это файл особенность:

Feature: SpecFlowFeature1 
    In order to avoid silly mistakes 
    As a math idiot 
    I want to be told the sum of two numbers 

@mytag 
Scenario: Add two numbers 
    Given Doing some actions, getting 1 and 1 

Мой совет, чтобы попытаться воспроизвести ошибку, а также в новом проекте, и если это удастся там, ошибка должна скрываться в коде, который вы не отправили в своем вопросе.

Смежные вопросы