2015-02-26 11 views
6

Trong this câu hỏi scenario.getName đã được sử dụng cho tên của kịch bản. Tôi cần phải có tên ngoài các tham số. Ví dụ: nếu kịch bản là:Làm cách nào để lấy tên và thông số của kịch bản? specflow

Scenario Outline: name of scenario 
Given I am on the proper page 
When I apply <filter> with <params> 
And I click filter 
Then the data should be filtered 
Examples: 
| filter | params  | 
| Date  | Today  | 
| Name  | Some Name | 

Tôi muốn lấy tênOfScenario (Ngày, Hôm nay).

Ngoài ra tôi đang sử dụng C# không java

CẬP NHẬT

Tôi biết khi tôi mở trường hợp thử nghiệm với NUnit họ hiển thị như nameOfScenario(Date,Today). Bất kỳ ý tưởng làm thế nào Nunit hiện nó?

+0

Đăng một số mã, bạn đã thử gì? –

+0

ScenarioContext.Current.ScenarioInfo.Title nhận tiêu đề. Tôi không biết làm thế nào để có được các thông số cũng như – mosaad

Trả lời

6

Hãy sử dụng TestContext.CurrentContext.Test.Name - nó sẽ chắc chắn giúp bạn có được tên kịch bản parametrized chính xác.

Luồng không dẫn đầu với tham số trong thời gian chạy, đó là trách nhiệm NUnit (hoặc kiểm tra đơn vị khác).

Ít nhất bạn có thể khám phá các thuộc tính TestContext.CurrentContext.Test để lấy danh sách tham số.

+3

Cần lưu ý rằng câu trả lời này đề cập cụ thể đến lớp NUnit 'TestContext'. Lớp 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' không có định nghĩa cho' CurrentContext'. –

5

Bạn có thể lấy tiêu đề của kịch bản hiện tại bằng cách sử dụng ScenarioContext.Current.ScenarioInfo.Title nhưng tôi không nghĩ có cách nào để lấy tên của các tham số.

NUnit có tên của paramaters như Specflow genereates các lớp đơn vị thử nghiệm với các tên này lúc thiết kế, nó không nhận được chúng từ specflow tại thời gian chạy

+0

Vì vậy, một cái gì đó đơn giản như in các thuộc tính thử nghiệm khi nó đang chạy là không thể? – mosaad

+0

Bạn có thể viết một bước "Given", có thể làm cho nó nền, mà có tất cả các tham số đó. Loại xấu xí, mặc dù. –

0

Tôi không tin rằng có bất kỳ hỗ trợ trực tiếp nào trong SpecFlow để thực hiện việc này. Tuy nhiên, chỉ với một chút nỗ lực, bạn có thể đạt được kết quả mong muốn.

Thay đổi định nghĩa Kịch bản của bạn như thế này:

Background: 
Given parameters <filter> and <params> 

Scenario Outline: name of scenario 
Given I am on the proper page 
When I apply <filter> with <params> 
And I click filter 
Then the data should be filtered 
Examples: 
| filter | params  | 
| Date  | Today  | 
| Name  | Some Name | 

và thực hiện các nghĩa bước tương ứng với bước Given parameters etc.. Ngoài ra, nếu tất cả những gì bạn muốn là cách phân biệt giữa các ví dụ, nghĩa là bạn không quan tâm rằng đó là "Ngày" và "Hôm nay", bạn chỉ muốn biết rằng đó là dòng đó chứ không phải dòng kia, bạn có thể thêm cột khác vào ví dụ của mình:

Scenario Outline: name of scenario 
Given I am on the proper page 
And I am working example number <example number> 
When I apply <filter> with <params> 
And I click filter 
Then the data should be filtered 
Examples: 
| filter | params  | example number | 
| Date  | Today  | 1    | 
| Name  | Some Name | 2    | 
Các vấn đề liên quan