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



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

我正在尝试根据 excel 中的行数引入测试用例循环。我正在使用视觉工作室中的数据驱动功能来实现这一点。 当我在"测试资源管理器"中执行时,这在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,这将帮助您识别确切的错误行号

我认为在数据行值null的情况下,ToString()可能导致此问题。

尝试使用转换类,这将有助于在一定程度上避免异常

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

最新更新