Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Naast C++ en C# biedt TAEF ondersteuning voor het ontwerpen van tests in scripttalen.
U maakt scriptonderdelen met behulp van een scripttaal die ondersteuning biedt voor de Microsoft COM-scriptinterfaces. Scripttalen die ondersteuning bieden voor deze interfaces zijn JScript, Microsoft Visual Basic Scripting Edition (VBScript), PERLScript, PScript, Ruby en Python.
Huidige beperkingen van het ontwerpen van scripttests
Standaard ondersteunt Windows alleen JScript en VBScript.
Scripttestbestandsindeling
Voor scripttaaltests gebruikt TAEF een enigszins gewijzigde bestandsindeling van Windows Script Components . In de volgende voorbeelden ziet u een testbestand met VBScript- en JScript-testklassen.
1 <?xml version="1.0" ?>
2
3 <!-- Debugging helpers -->
4 <!-- error Set this to true to display detailed error messages for syntax or run-time errors in the script component.-->
5 <!-- debug Set this to true to enable debugging. If this debugging is not enabled, you cannot launch the script debugger for a script -->
6 <?component error="true" debug="true"?>
7
8 <package>
9 <!-- Test module metadata -->
10 <ModuleProperty name="Owner" value="Someone"/>
11
12 <!-- Define a test class -->
13 <component id="VBSampleTests">
14 <!-- define and instantiate a logger -->
15 <object id="Log" progid="WEX.Logger.Log" />
16
17 <!-- include a reference to the logger so you could use the constants defined in logger library -->
18 <reference guid="e65ef678-a232-42a7-8a36-63108d719f31" version="1.0"/>
19
20 <!-- Test class metadata -->
21 <TestClassProperty name="DocumentationUrl" value="http://shelltestkb/"/>
22
23 <public>
24 <!-- Define a test method with metadata -->
25 <method name="TestOne">
26 <!-- Test method metadata -->
27 <TestMethodProperty name="Priority" value="1"/>
28 </method>
29
30 <!-- Define a test method without metadata -->
31 <method name="TestTwo"/>
32 </public>
33
34 <script language="VBScript">
35 <![CDATA[
36 Function TestOne()
37 Log.Comment("Calling TestOne")
38 End Function
39
40 Function TestTwo()
41 Log.Comment("Calling TestTwo")
42 End Function
43 ]] >
44 </script>
45 </component>
46
47 <!-- Define another test class -->
48 <component id="JScriptSampleTests">
49 <object id="Log" progid="WEX.Logger.Log" />
50
51 <!-- need reference to use logger constants -->
52 <reference guid="e65ef678-a232-42a7-8a36-63108d719f31" version="1.0"/>
53
54 <public>
55 <!-- Test setup and cleanup methods are declared using corresponding type = '' attributes -->
56 <method name="ClassSetup" type="TestClassSetup"/>
57 <method name="ClassCleanup" type="TestClassCleanup"/>
58 <method name="MethodSetup" type="TestMethodSetup"/>
59 <method name="MethodCleanup" type="TestMethodCleanup"/>
60
61 <method name="TestOne"/>
62 <method name="TestTwo"/>
63 </public>
64
65 <!-- Setup and Cleanup methods return false on failure -->
66 <script language="JScript">
67 <![CDATA[
68 function ClassSetup()
69 {
70 Log.Comment("Calling class setup");
71 return true;
72 }
73
74 function ClassCleanup()
75 {
76 Log.Comment("Calling class cleanup");
77 return true;
78 }
79
80 function MethodSetup()
81 {
82 Log.Comment("Calling method setup");
83 return true;
84 }
85
86 function MethodCleanup()
87 {
88 Log.Comment("Calling method cleanup");
89 return true;
90 }
91
92 function TestOne()
93 {
94 Log.Comment("Calling TestOne");
95
96 // For the purpose of demonstration, declare the test failed
97 Log.Result(TestResult_Failed);
98 }
99
100 function TestTwo()
101 {
102 Log.Comment("Calling TestTwo");
103 }
104 ]] >
105 </script>
106 </component>
107 </package>
Dit voorbeeld is een XML-bestand en begint met een gewone XML-header:
<?xml version="1.0" ?>
U configureert foutopsporingsinstellingen voor uw bestand door de kenmerkfout en foutopsporing in te stellen:
<?component error="true" debug="true"?>
- Stel fout naar true om gedetailleerde foutberichten weer te geven voor syntaxis- of uitvoeringsfouten in de scriptcomponent.
- Stel foutopsporingin op True om foutopsporing in te schakelen. Als foutopsporing niet is ingeschakeld, kunt u het foutopsporingsprogramma voor scripts niet starten voor een script (zoals met het trefwoord voor foutopsporing in JScript-code).
Het <pakketelement> plaatst testklassedefinities in een WSC-bestand . Na dit element kunt u metagegevens op moduleniveau invoegen door ModuleProperty-elementen toe te voegen:
<ModuleProperty name = "Owner" value = "Someone"/>
Het element ModuleProperty moet de naam - en waardekenmerken bevatten.
Het onderdeelelement start de declaratie voor de scripttestklasse. Dit element moet altijd een id-kenmerk hebben dat is ingesteld op de klassenaam.
Na het onderdeelelement kunt u metagegevens op klasseniveau invoegen met behulp van het element TestClassProperty . Net als bij het element ModuleProperty moet het de naam - en waardekenmerken hebben.
Op dit moment kunt u ook objecten maken en verwijzingen naar de objecten definiƫren. Zie de sectie Overige onderdelen voor meer informatie. Regels 15, 18, 49 en 52 in het XML-voorbeeld laten zien hoe u het WEX.Logger.Log-object kunt verwijzen en initialiseren.
Het <openbare> element plaatst de testmethodedeclaraties van de testscriptmodule. U declareert een testmethode door de naam van de testmethode op te geven in het naamkenmerk van een <methode-element> . U kunt ook de eigenschap testmethode toevoegen in het <methode-element> . Net als bij eigenschappen op andere niveaus is het niet verplicht. Als u deze echter toevoegt, moet u de naam - en waardekenmerken opnemen.
Het <scriptelement> identificeert de taal van het testscript en plaatst de implementatie van de testmethoden.
De <![ De sectie CDATA[]]> bevat de daadwerkelijke implementatie van de tests: de code die is geschreven in de scripttaal. In deze sectie implementeert u de testmethoden die u hebt gedeclareerd in de <openbare></openbare> sectie.