2013-06-25 2 views
1

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

Мой сценарий таков:
Сценарий: Тест подключения к серверу
Учитывая Get сервер IPAddress
Когда я нажимаю подключить
Затем я должен подключиться

Когда я говорю «Получить сервер IPAddress» то я могу прочитать аргумент командной строки. Является ли это возможным??

У любого другого решения или предложения. Заранее спасибо.

ответ

0

Я бы использовал конфигурационную систему .net - поместите свои строки подключения к серверу в элемент настроек параметров соединения (или если у вас есть религиозное возражение против размещения там чего-то не-базы данных, используйте настройки приложения) и прочтите ваши настройки. если вы хотите иметь разные конфигурационные файлы для разных сред, используйте конфигурационные преобразования для создания другой конфигурации. это позволит вам сохранить все в проекте и не зависеть от настройки переменных среды для вашего приложения. вы можете создавать сценарии преобразованных конфигурационных файлов, используя command line transform execution tool.

Я сделал что-то похожее на использование файлов конфигурации с моими спецификациями, поражающими веб-страницы, чтобы переключить драйвер, который я использую для selenium webdriver, и только что скопировал сборку своих спецификаций несколько раз с различными конфигурационными файлами, поэтому я могу запускать с разных каталогов для выполнения разных браузеров. вы можете сделать что-то подобное для желания подключиться к разным машинам или просто выплюнуть различные файлы конфигурации и обменять их в и из вашего каталога выполнения (или просто вручную изменить конфигурацию, когда вы хотите выполнить что-то другое).

Вы также должны получить обязательный «этот сценарий не является сценарием bdd и должен быть скорее рассказом о возможностях бизнеса, чем технический сценарий, который у вас есть, чтобы использовать инструменты bdd, такие как specflow, как они были предназначены» для того, чтобы это был полный ответ.

0

Specflow не предоставляет никаких механизмов для этого.

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

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

Но если вы действительно хотите, чтобы идти вперед

Все работает код наследует копию переменных окружения, которые были в существовании в то время команда началась. Вы можете установить их с помощью set Name=value, прежде чем запускать SpecFlow и получить у них Environment.GetVariable(variableName) внутри данного метода.

+0

Я действительно ценю за ваш совет.Im очень новый с этим инструментом specflow, поэтому я просто пытаюсь это сделать. – Ashishkumar