2016-08-08 3 views
0

Я использую CSV-файл в качестве источника данных в своих тестах CodedUI. Файл выглядит так:CodedUI TestCaseFilter

среды, URL
Живая, www.example.com
Stage, stage.example.com
испытания, test.example.com

Я хотел бы быть способный настроить мой TestCaseFilter для выборочного запуска тестов только в одной из сред при запуске командной строки vstest.console.exe. Я не могу найти способ сделать это, т. Е. Похоже, что параметр командной строки TestCaseFilter поддерживает только определенные свойства. Я ошибаюсь? Есть ли способ передать настраиваемое свойство TestCaseFilter, чтобы выполнялись только те тесты, которые относятся к определенному DataRow?

Источник данных в моих тестах настроен так:
[DataSource ("Microsoft.VisualStudio.TestTools.DataSource.CSV", "| DataDirectory | \ environments.csv", "окружающая среда # CSV", DataAccessMethod.Sequential)]

И я ссылаюсь на среду в каждом тесте следующим образом:
var url = TestContext.DataRow ["URL"]. ToString();

Спасибо за понимание.

+0

Если я правильно вас понимаю, вы имеете в виду, что хотите запустить только одну строку, в которой вы хотите найти три строки в файле testdata? –

+0

Это правильно. – VishuPDX

+0

Как вы хотите указать строку, которую хотите запустить? В методе тестирования или в самом прецеденте? –

ответ

0

Простым и лучшим способом является добавить еще один столбец рядом со столбцом среды в файле testdata. Скажем, имя столбца RunStatus. Значения должны быть либо «Да», либо «Нет», логика заключается в том, что для выполнения должен быть включен URL, который имеет Runstatus как «Да».
enter image description here

Перед тем, как TestMethod, у вас есть условие проверить Runstatus строки Да. Если это «Да», запустите «TestMethod».

[TestMethod] 
public void RunTheTest(TestContext testcontext) 
{ 
    if(testcontext.DataRow["RunStatus"].ToString()=="Yes") 
    { 
    TestMethod1(); 
    } 
} 

Надеюсь, это поможет. Удачи !!

+0

Это хорошее обходное решение. Спасибо за помощь. – VishuPDX

Смежные вопросы