2013-06-07 2 views
9

Я не могу определить привязку [BeforeFeature]/[AfterFeature] к моему файлу. Тестируемое приложение представляет собой автономные настольные приложения WPF.BeforeFeature/AfterFeature не работает с использованием SpecFlow и кодированного UI

Если я использую [BeforeScenario]/[AfterScenario] все работает нормально, приложение запускается без каких-либо проблем, выполненные шаги выполняются правильно и приложение закрыто.

После того, как я использую те же самые шаги с [BeforeFeature]/[AfterFeature] теги запуске приложения и тест завершается с:

Следующая ошибка произошла, когда этот процесс был запущен: Ссылка на объект не указывает на экземпляр объекта.

Вот пример:

[Binding] 
public class Setup 
{ 
    [BeforeScenario("setup_scenario")] 
    public static void BeforeAppScenario() 
    { 
     UILoader.General.StartApplication(); 
    } 

    [AfterScenario("setup_scenario")] 
    public static void AfterAppScenario() 
    { 
     UILoader.General.CloseApplication(); 
    } 

    [BeforeFeature("setup_feature")] 
    public static void BeforeAppFeature() 
    { 
     UILoader.General.StartApplication(); 
    } 

    [AfterFeature("setup_feature")] 
    public static void AfterAppFeature() 
    { 
     UILoader.General.CloseApplication(); 
    } 
} 

StartApplication/CloseApplication были записаны и автоматически генерируемое с кодированным UI Test Builder:

public void StartApplication() 
{ 
    // Launch '%ProgramFiles%\... 
    ApplicationUnderTest Application = ApplicationUnderTest.Launch(this.StartApplicationParams.ExePath, this.StartApplicationParams.AlternateExePath); 
} 

public class StartApplicationParams 
{  
    public string ExePath = "C:\\Program Files..." 
    public string AlternateExePath = "%ProgramFiles%\\..." 
} 

Обращает на себя внимание: я совершенно новый с SpecFlow. Я не могу понять, почему мой тест не сработал с [BeforeFeature] и отлично работает с [BeforeScenario].

Было бы здорово, если бы кто-нибудь мог помочь мне в этом вопросе. Благодаря!

+0

Не могли бы вы также разместить трассировку стека, за исключением, пожалуйста? Какая строка является ошибкой/это внешний код/​​какова последняя строка вашего кода для запуска? – perfectionist

ответ

14

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

Для работы с функцией BeforeFeature \ AfterFeature необходимо пометить эту функцию, пометка только определенных сценариев не будет работать.

Ваши художественные файлы должны начать так:

@setup_feature 
Feature: Name Of Your Feature 

@setup_scenario 
Scenario: ... 
Смежные вопросы