【问题标题】:How to Run the Nunit Testcases from the Spreadsheet Using C#如何使用 C# 从电子表格运行 Nunit 测试用例
【发布时间】:2015-06-03 14:09:21
【问题描述】:

假设我有电子表格,一列称为类名,第二列称为 NunitTestcases,第三列称为状态(是或否)

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

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

【问题讨论】:

  • 您遇到了什么问题?您列出了 3 个版本的 C#,您应该只使用一个标签。

标签: c# c#-4.0 selenium-webdriver c#-3.0 c#-2.0


【解决方案1】:

发布的问题与 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多