我正在尝试创建一个测试框架,但不确定最好使用什么来存储将在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-现在只要测试操作员单击Run按钮,listbox2中的测试用例就可以进行测试了。
那么我如何存储测试用例数据呢?我应该将这些数据存储在内存中吗?如果是这样,我应该使用什么存储数据功能?如果不将这些数据存储在内存中,这是否意味着每次访问测试用例数据时都必须读取XML,那么这样做是不是一种好的做法?
谢谢。
发布于 2012-06-11 05:57:18
如果在XML中定义测试用例,那么可以在XML Schema定义文件中定义其结构,并使用tool从该.xsd文件生成内存中的数据结构以及反序列化器(自动读取器)。该工具将为您提供一个可以包含在程序中的C#文件。您会惊讶地发现,使用此表示法是多么容易。
但是,在开始之前,虽然您的XML结构在这个非常简单的初始情况下可以工作,但它似乎不太容易维护。如果"data“节点在逻辑上属于它们前面的"test case”节点,那么即使在XML结构中也应该如此,如下所示:
<Printer>
<TestCaseName Name="Printer_Construct">
<Data1>"Printer1"</Data1>
</TestCaseName>
<TestCaseName Name="Printer_PrintString">
<Data1>"Printer1"</Data1>
<Data2>"Printing my string"</Data2>
</TestCaseName>
</Printer>发布于 2012-06-11 06:01:50
存储这类信息的位置在很大程度上取决于您的界面。
对于windows应用程序(控制台或winforms),您可以在第一次需要它时将其存储在内存中,并继续查找它。
另一方面,如果它是一个web界面,我强烈建议您使用内置的.net web缓存。它非常高效,并且有强大的缓存过期选项,比如可以在任何时候更改文件时重新加载文件,否则就可以持久保存。
https://stackoverflow.com/questions/10972613
复制相似问题