![](/img/trans.png)
[英]System.NullReferenceException: „Object reference not set to an instance of an object.” problem
[英]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.