Pengujian Penulisan dalam Bahasa Skrip
Selain C++ dan C#, TAEF mendukung pengujian penulisan dalam bahasa pembuatan skrip.
Anda membuat komponen skrip menggunakan bahasa skrip apa pun yang mendukung antarmuka Microsoft COM Scripting. Bahasa skrip yang mendukung antarmuka ini termasuk JScript, Microsoft Visual Basic Scripting Edition (VBScript), PERLScript, PScript, Ruby, dan Python.
Batasan Penulisan Pengujian Skrip Saat Ini
Di luar kotak, Windows hanya mendukung JScript dan VBScript.
Format File Uji Skrip
Untuk pengujian bahasa skrip, TAEF menggunakan format file Komponen Skrip Windows yang sedikit dimodifikasi. Contoh berikut menunjukkan file pengujian yang berisi kelas pengujian VBScript dan JScript.
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>
Contoh ini adalah file XML dan dimulai dengan header XML biasa:
<?xml version="1.0" ?>
Anda mengonfigurasi pengaturan debug untuk file Anda dengan mengatur kesalahan atribut dan debug:
<?component error="true" debug="true"?>
- Atur kesalahan ke true untuk menampilkan pesan kesalahan terperinci untuk sintaks atau kesalahan run-time dalam komponen skrip.
- Atur debug ke true untuk mengaktifkan penelusuran kesalahan. Jika penelusuran kesalahan tidak diaktifkan, Anda tidak dapat meluncurkan debugger skrip untuk skrip (seperti dengan kata kunci debug dalam kode JScript).
Elemen <paket> mencakup definisi kelas pengujian dalam file .wsc . Setelah elemen ini, Anda dapat menyisipkan metadata tingkat modul dengan menambahkan elemen ModuleProperty :
<ModuleProperty name = "Owner" value = "Someone"/>
Elemen ModuleProperty harus menyertakan atribut nama dan nilai .
Elemen Component memulai deklarasi untuk kelas pengujian skrip. Elemen ini harus selalu memiliki atribut id yang diatur ke nama kelas.
Setelah elemen Komponen , Anda dapat menyisipkan metadata tingkat kelas dengan menggunakan elemen TestClassProperty . Seperti halnya elemen ModuleProperty , elemen tersebut harus memiliki atribut nama dan nilai .
Pada titik ini, Anda juga dapat membuat objek dan menentukan referensi ke objek. Lihat bagian Komponen Lain untuk informasi selengkapnya. Baris 15, 18, 49, dan 52 dalam contoh XML memperlihatkan cara mereferensikan dan menginisialisasi WEX. Objek Logger.Log .
Elemen <publik> mencakup deklarasi metode pengujian modul skrip pengujian. Anda mendeklarasikan metode pengujian dengan menentukan nama metode pengujian dalam atribut <nama elemen metode>. Anda juga dapat menambahkan properti metode pengujian di <dalam elemen metode> . Seperti halnya properti di tingkat lain, itu tidak wajib. Namun, jika Anda menambahkannya, Anda harus menyertakan atribut nama dan nilai .
Elemen <skrip> mengidentifikasi bahasa skrip pengujian dan mencakup implementasi metode pengujian.
Yang <![ Bagian CDATA[]]> berisi implementasi aktual pengujian - kode yang ditulis dalam bahasa pembuatan skrip. Di bagian ini, Anda menerapkan metode pengujian yang Anda deklarasikan di <bagian publik></publik> .