2013-06-07 31 views
9

Tôi không thể xác định móc nối [BeforeFeature]/[AfterFeature] cho tệp tính năng của mình. Ứng dụng đang thử nghiệm là các ứng dụng máy tính để bàn độc lập của WPF.BeforeFeature/AfterFeature không hoạt động khi sử dụng giao diện người dùng SpecFlow và Coded

Nếu tôi sử dụng [BeforeScenario]/[AfterScenario] mọi thứ hoạt động tốt, ứng dụng sẽ khởi động mà không gặp bất kỳ vấn đề gì, các bước được thiết kế được thực hiện đúng và ứng dụng được đóng.

Khi tôi sử dụng các bước tương tự với [BeforeFeature]/[AfterFeature] thẻ ứng dụng bắt đầu và thử nghiệm không thành công với:

Các lỗi sau đây xảy ra khi quá trình này được bắt đầu: Đối tượng tham chiếu không được đặt để một thể hiện của một đối tượng.

Dưới đây là một ví dụ:

[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 được ghi nhận và tự động tạo ra với Coded UI thử nghiệm 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%\\..." 
} 

đáng chú ý: Tôi là khá mới với SpecFlow. Tôi không thể hiểu tại sao thử nghiệm của tôi không thành công với [BeforeFeature] và hoạt động tốt với [BeforeScenario].

Sẽ thật tuyệt nếu ai đó có thể giúp tôi giải quyết vấn đề này. Cảm ơn!

+0

Ông có thể cũng gửi stack trace của ngoại lệ xin vui lòng? Dòng nào là lỗi/là mã bên ngoài/dòng cuối cùng của mã của bạn để chạy là gì? – perfectionist

Trả lời

14

Gần đây tôi đã gặp sự cố tương tự. Không chắc chắn nếu điều này vẫn có thể giúp bạn, nhưng nó có thể được sử dụng cho những người vấp ngã khi câu hỏi này.

Đối với BeforeFeature \ AfterFeature để hoạt động, bản thân tính năng cần phải được gắn thẻ, gắn thẻ chỉ các trường hợp cụ thể sẽ không hoạt động.

file tính năng bạn nên bắt đầu như thế này:

@setup_feature 
Feature: Name Of Your Feature 

@setup_scenario 
Scenario: ... 
Các vấn đề liên quan