c# 4.0 -如何使用c#从电子表格中运行Nunit测试用例

本文关键字:运行 Nunit 测试用例 电子表格 何使用 | 更新日期: 2023-09-27 17:52:55

假设我有一个电子表格,第一列是class name,第二列是NunitTestcases,第三列是Status(Yes or No)

我的场景是需要运行状态标记为Yes的测试用例。(例如,我有10个testcase,我只需要运行4个testcase)。

任何人都可以帮助我或示例代码。

c# 4.0 -如何使用c#从电子表格中运行Nunit测试用例

张贴的问题与Selenium-Webdriver无关。您希望基于读取excel文件来调用这些方法。虽然这是可以实现的,但有很多缺点。为了实现这一点,你应该能够读取excel表/文件并检查标志状态,如果是,你需要使用基于类和方法的反射来调用方法。

       string testAssemblyPath = "Assembly Path"; // Make sure only path and do not specify the assembly name.
        using (ExcelPackage p = new ExcelPackage())
        {
            using (FileStream stream = new FileStream(@"ExcelFilePath.xlsx", FileMode.Open))
            {
                p.Load(stream);
                ExcelWorksheet ws = p.Workbook.Worksheets["Sheet1"];
                int rowIndex = 2;
                for (int index = 0; index < ws.Dimension.Rows - 1; index++)
                {
                    if ("Yes" == ws.Cells[rowIndex + index, 3].Value.ToString())
                    {
                        string className = ws.Cells[rowIndex + index, 1].Value.ToString();
                        string methodName = ws.Cells[rowIndex + index, 2].Value.ToString();
                        Assembly assembly = Assembly.LoadFrom(testAssemblyPath + "TestAssembly.dll");
                        Type type = assembly.GetType(string.Concat(assembly.FullName.Split(',')[0], className));
                        if (type != null)
                        {
                            MethodInfo methodInfo = type.GetMethod(methodName);
                            if (methodInfo != null)
                            {                                    
                                object classInstance = Activator.CreateInstance(type, null);
                                methodInfo.Invoke(classInstance, null);
                            }
                        }
                    }
                }
            }
        }

上面的代码只显示了我们如何调用一个方法,它是测试程序集的一部分(假设测试方法在测试程序集中)。为了阅读excel,我使用了EPPlus