以下是我将如何处理这个问题:
为了简单、可重复和清晰起见,创建一个包含您要测试的各种日期的数据源(例如 XML 文件)并使用它来填充测试中的方法参数会更简单。
当您运行测试时,它将针对您在数据源中获得的每个数据行重新运行。因此,如果您有 10 个日期条目,它将运行 10 次。
将以下代码放入您的 CodedUI 测试中。这将定义您的测试将从中读取的数据源 (data.xml)。
[DeploymentItem("MyTest\\data.xml"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Entry", DataAccessMethod.Sequential), TestMethod]
data.xml 看起来像这样:
<?xml version="1.0" encoding="UTF-8" ?>
<Data>
<Entry>
<Date>2013/01/01</Date>
</Entry>
<Entry>
<Date>2013/03/11</Date>
</Entry>
<Entry>
<Date>2013/04/11</Date>
</Entry>
<Entry>
<Date>2013/06/17</Date>
</Entry>
</Data>
在这里,您需要修改记录方法的参数以从 data.xml 数据源中读取。
this.UIMap.RecordedMethodParams.UITxtDateEditText =TestContext.DataRow["Date"].ToString();
this.UIMap.RecordedMethod();
当您在到达 RecordedMethod 时运行 CodedUI 测试时,它将为您在数据源中的每个日期条目运行一次。你可以有 1 个或 10,000 个。
我喜欢这种方法,因为它允许您在想要更改测试参数的任何时候修改简单的 XML。这也允许非熟练测试人员将测试更改为他们的要求,而无需涉足代码。
我希望这有帮助!