我正在尝试创建一个测试框架,并且不确定最好用什么来存储将在XML文件中提供的测试用例名称和数据。例如,我想测试打印机功能,因此它具有构造函数,打开打印机连接,将数据发送到打印机,关闭打印机连接。所以XML将是:
<Printer>
<TestCaseName>"Printer_Construct"</TestCaseName>
<Data1>"Printer1"</Data1>
<TestCaseName>"Printer_OpenConnection"</TestCaseName>
<Data1>"Printer1"</Data1>
<TestCaseName>"Printer_PrintString"</TestCaseName>
<Data1>"Printer1"</Data1>
<Data2>"Printing my string"</Data2>
<TestCaseName>"Printer_CloseConnection"</TestCaseName>
<Data1>"Printer1"</Data1>
</Printer>
以下是我的测试框架的工作方式:
1-当测试运算符运行测试框架时,首先它将所有案例名称仅加载到listbox1中。它还不会加载测试用例数据。
2-当测试操作员选择要运行的特定测试用例时,它会将该测试用例加载到listbox2中。因此,当它将测试用例加载到listbox2时,它将显示测试用例名称和测试数据(data1和data2,如上面的xml struct所示)。
3-现在,只要测试操作员单击“运行”按钮,就可以测试listbox2中的测试用例。
那么如何存储测试用例数据?我应该将这些数据存储在内存中吗?如果是这样,我应该使用什么存储数据功能?如果不将这些数据存储在内存中,这是否意味着每次访问测试用例数据时都必须读取XML,这样做是不错的做法?
感谢。
答案 0 :(得分:3)
如果您在XML中定义测试用例,那么您可以从XML模式定义文件中定义其结构并使用tool生成内存数据结构以及解串器(自动读取器)中受益来自那个.xsd
文件。该工具将为您提供可包含在程序中的C#
文件。你会惊讶地发现这种表现形式是多么容易。
但是,在开始之前,虽然您的XML结构可能在这个非常简单的初始情况下工作,但它似乎不太可维护。如果“数据”节点在逻辑上属于它们之前的“测试用例”节点,那么它甚至应该在XML结构中,如下所示:
<Printer>
<TestCaseName Name="Printer_Construct">
<Data1>"Printer1"</Data1>
</TestCaseName>
<TestCaseName Name="Printer_PrintString">
<Data1>"Printer1"</Data1>
<Data2>"Printing my string"</Data2>
</TestCaseName>
</Printer>
答案 1 :(得分:1)
存储此类信息的位置在很大程度上取决于您的界面。
对于Windows应用程序(控制台或winforms),您可以在第一次需要时将其存储在内存中并继续查找。
另一方面,如果它是一个Web界面,我强烈建议使用内置的.net Web缓存。它非常高效,并且具有强大的缓存过期选项,例如可以在任何时候更改文件时重新加载文件,并以其他方式保留。