繁体   English   中英

System.NullReferenceException:未将对象引用设置为对象的实例。 在测试自动化执行期间

[英]System.NullReferenceException: Object reference not set to an instance of an object. During Test automation execution

如果有人帮助我解决我在自动化执行过程中面临的以下问题,那就太好了:

我正在尝试根据 excel 中的行数引入测试用例循环。 我在 Visual Studio 中使用数据驱动功能来实现这一点。 当我在“测试资源管理器”中执行时,这在 Visual Studio 环境中完美运行。 但是,当我构建这个项目的 DLL 并复制到自动化工具的工作文件夹(它选择执行的位置)时,会触发以下错误:

System.Reflection.TargetInvocationException:调用的目标已抛出异常。 ---> System.NullReferenceException:未将对象引用设置为对象的实例。

请看下面的代码片段:

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xlsx)};dbq=J:\\Automation_Working_Directory\\Automation_Files_Demo\\Test_Report_01Base.xlsx;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "SrsReportRunController_Dialog$", DataAccessMethod.Sequential)]
    [TestMethod]
    public void Test_Report_01()
    {
        #region Fetch data from Excel file

        string fromDate = TestContext.DataRow["From date"].ToString();
        string startDate = TestContext.DataRow["Report period start date"].ToString();
        string toDate = TestContext.DataRow["To date"].ToString();

        #endregion Fetch data from Excel file

        Application.Control.TextBox().SetValue(fromDate);}

当我尝试使用“fromDate”值输入应用程序时,我收到 NullReferenceExecption。

提前致谢。

首先,您应该在代码中添加 try-catch,这将帮助您确定确切的错误行号

我认为在 DataRow 值为null情况下, ToString()可能会导致此问题。

尝试使用Convert Class这将有助于在一定程度上避免异常

 public void Test_Report_01()
 {
     try{
         #region Fetch data from Excel file

        string fromDate = Convert.ToString(TestContext.DataRow["From date"]);
        string startDate = Convert.ToString(TestContext.DataRow["Report period start date"]);
        string toDate = Convert.ToString(TestContext.DataRow["To date"]);

        #endregion Fetch data from Excel file

        Application.Control.TextBox().SetValue(fromDate);
     }
     catch(Exception e){
         Console.WriteLine(e.toString());
     }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM