是否有可能继续运行nunit脚本,即使发生错误
本文关键字:错误 脚本 有可能 继续 运行 nunit 是否 | 更新日期: 2023-09-27 17:51:08
我有一个测试,从csv文件中读取输入,并根据循环中的输入执行所有测试,并在同一文件中为每一行执行回写结果。问题是,即使在单个输入数据中发生错误,也无法运行整个输入数据。是否有可能在其中一个输入数据失败时继续运行测试?
请指导。由于
代码[Test, Category(TestConstants.DataCategoryName)]
public void GenerateTestData_Book()
{
string csv_file_path = GetAppSettingsEntry("CSVResourcesPath", true);
DataTable csvData = GetDataFromCSVFile(csv_file_path);
for (int i = 0; i < csvData.Rows.Count; i++)
{
var request = TestData.Helper.GetBooks<RequestedBook>(csvData.Rows[i][0]);
string errors = string.Empty;
if (response.HasErrors())
{
errors = string.Join(Environment.NewLine, response.ResponseInfos.GetErrors().Select(x => x.Code + " " + x.Text));
UpdateColumnInCSVFile(csv_file_path,error, errors, Convert.ToString(csvData.Rows[i][0]));
}
else
{
// Save Book id in file
UpdateColumnInCSVFile(csv_file_path, Reference, Convert.ToString(response.Book.Bookid), Convert.ToString(csvData.Rows[i][0]));
}
}
}
}
应该在for循环中放入try-catch语句。如果您希望测试在错误时失败,您可以存储在循环之前声明的bool值并进行断言。
像这样:
public void GenerateTestData_Book()
{
string csv_file_path = GetAppSettingsEntry("CSVResourcesPath", true);
DataTable csvData = GetDataFromCSVFile(csv_file_path);
bool hasError = false;
for (int i = 0; i < csvData.Rows.Count; i++)
{
try
{
//do your stuff here....
}
catch (System.Exception)
{
hasError = true;
}
}
Assert.IsFalse(hasError);
}