2014-04-24 73 views
1

我構建了一個編碼的UI測試,並且希望將其作爲數據驅動的測試, 我想從Excel文件(Data.xls)中獲取數據與項目文件相同的目錄,我用MSDN站點中顯示的這條線,但它沒有工作,我應該做什麼改變線?以excel文件作爲數據源的數據驅動的編碼UI測試

[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] 

謝謝

+0

提供了錯誤信息,你得到的將幫助我們回答你的問題。 –

+0

@EricScherrer 單元測試適配器無法連接到數據源或讀取數據。 – Adi

+0

將輸入文件放在dll所在的bin \ Debug文件夾中。它應該工作。 – kida

回答

0

這裏的代碼,我使用的數據源連接到我的測試線:

[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電子表格設置爲部署項目。我不確定你是否已經做到了。

0

作爲解決方法創建一個新類並添加此數據源。您可以使用相同的UIMap和相同的代碼,只需添加一個新的Coded UI Test。 「項目」 - >「新建CodedUI測試」。

我已經使用相同的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(); 


    } 
0

如果你能有一個堆棧跟蹤提供給我們,可能是我們本可以給你確切的解決方案。

不過,看到您的評論我認爲,如果您遇到連接錯誤,很可能是由於您沒有爲OLEDB提供程序安裝2007 Office System Driver。

您可以從下面的Microsoft鏈接下載:http://www.microsoft.com/en-us/download/details.aspx?id=23734