Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自多个excel文件的编码UI驾驶考试_C#_Coded Ui Tests - Fatal编程技术网

C# 来自多个excel文件的编码UI驾驶考试

C# 来自多个excel文件的编码UI驾驶考试,c#,coded-ui-tests,C#,Coded Ui Tests,我们使用编码UI来测试软件的策略是创建几个Excel电子表格,每个表格都包含特定测试用例的测试步骤。将有一个驱动程序电子表格,其中有一个工作表,其中列出了要运行的测试用例。这个想法是阅读驱动程序电子表格,然后打开各个测试用例电子表格来运行测试步骤。测试步骤将列出按钮或字段、要执行的操作(单击、编辑)以及数据值或其他预期结果,这些数据值或结果将传递给UIMap或手写map中的帮助器函数 在我的编码UI项目中,我只有一个测试方法,它有一个与之关联的电子表格数据绑定。我可以打开那个文件,毫无问题地读取

我们使用编码UI来测试软件的策略是创建几个Excel电子表格,每个表格都包含特定测试用例的测试步骤。将有一个驱动程序电子表格,其中有一个工作表,其中列出了要运行的测试用例。这个想法是阅读驱动程序电子表格,然后打开各个测试用例电子表格来运行测试步骤。测试步骤将列出按钮或字段、要执行的操作(单击、编辑)以及数据值或其他预期结果,这些数据值或结果将传递给UIMap或手写map中的帮助器函数

在我的编码UI项目中,我只有一个测试方法,它有一个与之关联的电子表格数据绑定。我可以打开那个文件,毫无问题地读取它。如何在运行时关闭该电子表格文件并打开另一个

还有什么其他方法可以完成我想做的事情呢?

使用

using Microsoft.Office.Interop.Excel;
要打开Excel实例,请执行以下操作:

private Microsoft.Office.Interop.Excel.Application excel;
...
excel = new Microsoft.Office.Interop.Excel.Application();
要打开特定工作簿,请执行以下操作:

private Workbook workbook;
....
workbook = excel.Workbooks.Open(@"\\C\Data\YourDriver.xlsx");
要获取特定工作表,请执行以下操作:

Worksheet worksheet = workbook.Worksheets["YourTestCaseWorkSheet"];
要终止任务,请执行以下操作:

    /// <summary>
    /// Quits the excel process
    /// </summary>
    public void Quit() 
    {
        Marshal.ReleaseComObject(this.worksheet);
        Marshal.ReleaseComObject(this.workbook);
        this.excel.Quit();
        this.excel = null;
    }
//
///退出excel进程
/// 
公开作废退出()
{
Marshal.ReleaseComObject(此工作表);
Marshal.ReleaseComObject(此.工作簿);
this.excel.Quit();
this.excel=null;
}
在[TestInitialize]方法中的Excel工作表上打开,在[TestCleanup]中退出。您应该尝试使用Quit方法捕获所有测试用例,以确保excel进程关闭

请注意,测试方法不能运行其他测试方法。因此,您需要使用一个测试用例来运行多个Excel测试用例


您还可以通过MSTEST.EXE生成批处理文件以运行测试

到目前为止,您是如何使用单个电子表格实现的?我认为如果可能,最好使用MS的内置数据源支持()我应该提到,如果您想将数据访问移出测试方法,这是一个解决方案。没有一种方法可以在测试方法之外使用MS DataSource,他们需要这样做才能实现在没有用户交互的情况下运行不同测试的目标