2015-02-26 7 views
6

this प्रश्न परिदृश्य में .getName परिदृश्य के नाम पर उपयोग किया गया था। मुझे पैरामीटर के अलावा नाम प्राप्त करने की आवश्यकता है। उदाहरण के लिए यदि परिदृश्य है:परिदृश्य नाम और पैरामीटर कैसे प्राप्त करें? 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 | 

मैं नाम OfScenario (दिनांक, आज) प्राप्त करना चाहता हूं।

इसके अलावा, मैं नहीं जावा का उपयोग कर रहा सी #

अद्यतन

मैं जानता हूँ कि जब मैं NUnit के साथ परीक्षण मामलों को खोलने वे nameOfScenario(Date,Today) के रूप में दिखाई देते हैं। कोई विचार कैसे नूनिट करता है?

+0

कुछ कोड पोस्ट करें, आपने क्या प्रयास किया है? –

+0

परिदृश्य Context.Current.ScenarioInfo.Title शीर्षक प्राप्त करता है। मुझे नहीं पता कि पैरामीटर कैसे प्राप्त करें – mosaad

उत्तर

6

TestContext.CurrentContext.Test.Name उपयोग करने के लिए स्वतंत्र महसूस सटीक parametrized परिदृश्य नाम प्राप्त करने में आपकी मदद करें।

Specflow कार्यावधि में मानकों के साथ सुराग नहीं है, यह NUnit (या अन्य इकाई परीक्षण रूपरेखा) जिम्मेदारी है।

कम से कम आप पैरामीटर सूची प्राप्त करने के लिए TestContext.CurrentContext.Test गुणों का पता लगा सकते हैं।

+3

यह ध्यान दिया जाना चाहिए कि यह उत्तर विशेष रूप से NUnit वर्ग 'TestContext' को संदर्भित करता है। क्लास 'माइक्रोसॉफ्ट। विज़ुअल स्टूडियो। टेस्टटूल। यूनीट टेस्टिंग। टेस्टकॉन्टेक्स्ट' में 'CurrentContext' की परिभाषा नहीं है। –

5

आप ScenarioContext.Current.ScenarioInfo.Title का उपयोग कर वर्तमान परिदृश्य का शीर्षक प्राप्त कर सकते हैं लेकिन मुझे नहीं लगता कि पैरामीटर के नाम प्राप्त करने का कोई तरीका है। होगा निश्चित रूप से इसे - के रूप में Specflow डिजाइन समय इन नामों के साथ इकाई परीक्षण कक्षाओं genereates

NUnit paramaters का नाम है, यह उन्हें specflow से रन टाइम पर नहीं मिलता है

+0

तो एक बार चलने के बाद परीक्षण विशेषताओं को प्रिंट करने के रूप में सरल कुछ आसान नहीं है? – mosaad

+0

आप एक 'दिया गया' कदम लिख सकते हैं, शायद इसे पृष्ठभूमि बनाएं, जो उन सभी मानकों को लेता है। बदसूरत की तरह, हालांकि। –

0

मुझे विश्वास नहीं है कि ऐसा करने के लिए SpecFlow में कोई प्रत्यक्ष समर्थन है। हालांकि, थोड़ी सी कोशिश के साथ, आप जो परिणाम चाहते हैं उसे प्राप्त कर सकते हैं।

इस तरह अपने परिदृश्य परिभाषा बदलें:

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 | 

और कदम परिभाषा यह है कि Given parameters etc. कदम से मेल खाती है कार्यान्वित करें।

वैकल्पिक रूप से, यदि आप चाहते हैं कि उदाहरणों के बीच अंतर करने का एक तरीका है, यानी आपको परवाह नहीं है कि यह "तिथि" और "आज" है, तो आप बस यह जानना चाहते हैं कि यह वह रेखा थी और दूसरी नहीं, आप अपने उदाहरणों में एक और कॉलम जोड़ सकते हैं:

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    | 
संबंधित मुद्दे