CodedUI TestCaseFilter

时间:2016-08-08 21:50:20

标签: filter datasource coded-ui-tests datarow

我在CodedUI测试中使用CSV文件作为DataSource。该文件如下所示:

环境,URL
现场,www.example.com
舞台上,stage.example.com
测试,test.example.com

我希望能够设置我的TestCaseFilter,以便在运行vstest.console.exe命令行时仅在其中一个环境中有选择地运行测试。我似乎无法找到任何方法,即看起来TestCaseFilter命令行参数只支持特定属性。我错了吗?有没有办法将自定义属性传递给TestCaseFilter,以便只执行与特定DataRow相关的测试?

我的测试中的DataSource设置如下:
[DataSource(" Microsoft.VisualStudio.TestTools.DataSource.CSV"," | DataDirectory | \ environments.csv"," environment#csv",DataAccessMethod.Sequential) ]

我在每个测试中引用环境如下:
var url = TestContext.DataRow [" URL"]。ToString();

感谢您的任何见解。

1 个答案:

答案 0 :(得分:0)

简单而好的方法是在testdata文件的environment列旁边添加另一列。假设列名是RunStatus。值应为“是”或“否”,逻辑是执行时应包含Runstatus为“是”的URL。
enter image description here

在TestMethod之前,有条件检查行的Runstatus是否。如果是,则运行TestMethod。

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

希望它有所帮助。祝你好运!!