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

时间:2014-03-20 13:10:53

标签: c# loops nunit

我有一个测试,它从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]));
            }
        }
    }

}

1 个答案:

答案 0 :(得分:0)

你应该在你的for循环中放一个try-catch。 如果您希望测试在出错时失败,您可以存储在循环之前声明的bool并在循环之后生成assert.isTrue。

这样的事情:

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