以excel文件作为数据源的数据驱动编码UItesting

我build立了一个编码的UItesting,我想使它成为一个数据驱动的testing,我想从位于同一个目录中的项目文件的Excel文件(Data.xls)中获取数据,我使用这个行MSDN网站,但它没有工作,我应该做什么改变线?

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] 

谢谢

以下是我用来将DataSource连接到我的testing的代码行:

 [DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=|DataDirectory|\\Logins.xlsx;defaultdir=C:\\Data\\Logins.csv;driverid=1046;maxbuffersize=2048;pagetimeout=5", "Sheet1$", DataAccessMethod.Sequential), DeploymentItem("Logins.xlsx"), TestMethod] 

然后在我的代码中我使用:

 LoginParams.TextBoxInfo = TestContext.DataRow["ColumnHeader"].ToString(); 

但是,我确实将我的Excel电子表格设置为“部署”项目。 我不确定你是否已经这样做了。

作为解决方法创build一个新的类,并添加此数据源。 您可以使用相同的UIMap和相同的代码,只需添加一个新的Coded UI Test。 “项目” – >“新的CodedUItesting”。

我已经使用了相同的Excel工作簿,但是对于我的testing使用了不同的表格

 namespace Data_driven_testing { /// <summary> /// Summary description for CodedUITest2 /// </summary> [CodedUITest] public class CodedUITest2 { public CodedUITest2() { } [DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\\CodedUI\\Data_driven_testing\\Data_driven_testing\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet2$", DataAccessMethod.Sequential), TestMethod] public void CodedUITestMethod1() { this.UIMap.RecordedMethod3Params.UITextBox1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.RecordedMethod3Params.UITextBox2EditText = TestContext.DataRow["Input2"].ToString(); this.UIMap.RecordedMethod3(); // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. // For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463 } namespace Data_driven_testing { /// <summary> /// Summary description for CodedUITest1 /// </summary> [CodedUITest] public class CodedUITest1 { public CodedUITest1() { } //[TestMethod] [DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\\CodedUI\\Data_driven_testing\\Data_driven_testing\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] public void CodedUITestMethod1() { this.UIMap.RecordedMethod1Params.UITextBox3Text = TestContext.DataRow["Input1"].ToString(); this.UIMap.RecordedMethod1Params.UITextBox4EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.RecordedMethod1(); this.UIMap.RecordedMethod2Params.UITextBox5EditText = TestContext.DataRow["Input3"].ToString(); this.UIMap.RecordedMethod2Params.UITextBox6EditText = TestContext.DataRow["Input4"].ToString(); // this.UIMap.RecordedMethod2(); } 

如果你能提供给我们一个堆栈跟踪,可能我们可以给你准确的解决scheme。

不过,看到你的评论,我想,如果你得到一个连接错误,这很可能是由于你没有为OLEDB提供商安装的2007 Office System Driver。

您可以从以下Microsoft链接下载它: http : //www.microsoft.com/en-us/download/details.aspx?id=23734