是否有可能继续运行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]));
            }
        }
    }

}

是否有可能继续运行nunit脚本,即使发生错误

应该在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);
}