c# 4.0 -如何使用c#从电子表格中运行Nunit测试用例
本文关键字:运行 Nunit 测试用例 电子表格 何使用 | 更新日期: 2023-09-27 17:52:55
假设我有一个电子表格,第一列是class name,第二列是NunitTestcases,第三列是Status(Yes or No)
我的场景是需要运行状态标记为Yes的测试用例。(例如,我有10个testcase,我只需要运行4个testcase)。
任何人都可以帮助我或示例代码。
张贴的问题与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