以excel文件为数据源的数据驱动编码UI测试

92vpleto  于 2022-12-27  发布在  其他
关注(0)|答案(3)|浏览(140)

我构建了一个编码的UI测试,我想让它成为一个数据驱动的测试,我想从与项目文件位于同一目录中的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]

谢谢

wwtsj6pe

wwtsj6pe1#

下面是我用来将DataSource连接到测试的代码行:

[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电子表格设置为部署项。我不确定您是否已经这样做了。

nwlls2ji

nwlls2ji2#

作为一种解决方法,创建一个新类,并添加此数据源。您可以使用相同的UIMap和相同的代码,只需添加一个新的编码UI测试。“项目”-〉“新编码UI测试”。
我已经使用相同的Excel工作簿,但不同的工作表为我的测试如下:

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();

    }
r6hnlfcb

r6hnlfcb3#

如果你能给我们提供一个堆栈跟踪,也许我们可以给你确切的答案。
尽管如此,看到你的评论,我认为,如果你得到一个连接错误,这很可能是由于事实上,你没有为OLEDB提供程序安装2007年Office系统驱动程序。
您可以从以下Microsoft链接下载:http://www.microsoft.com/en-us/download/details.aspx?id=23734

相关问题