Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Além de C++ e C#, o TAEF suporta testes de criação em linguagens de script.
Você cria componentes de script usando qualquer linguagem de script que ofereça suporte às interfaces de script Microsoft COM. As linguagens de script que suportam essas interfaces incluem JScript, Microsoft Visual Basic Scripting Edition (VBScript), PERLScript, PScript, Ruby e Python.
Limitações atuais da autoria de testes de script
Pronto para usar, o Windows suporta apenas JScript e VBScript.
Formato de arquivo de teste de script
Para testes de linguagem de script, o TAEF usa um formato de arquivo Windows Script Components ligeiramente modificado. Os exemplos a seguir mostram um arquivo de teste que contém classes de teste VBScript e 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>
Este exemplo é um arquivo XML e começa com um cabeçalho XML comum:
<?xml version="1.0" ?>
Você configura as definições de depuração para o seu arquivo definindo os atributos erro e depuração:
<?component error="true" debug="true"?>
- Defina o erro em como verdadeiro em para exibir mensagens detalhadas de erro de sintaxe ou de execução no componente de script.
- Defina de depuração como true para habilitar a depuração. Se a depuração não estiver habilitada, você não poderá iniciar o depurador de script para um script (como com a palavra-chave debug no código JScript).
O elemento do pacote <> inclui definições de classes de teste num ficheiro .wsc . Após este elemento, pode inserir metadados ao nível do módulo, adicionando elementos ModuleProperty:
<ModuleProperty name = "Owner" value = "Someone"/>
O elemento ModuleProperty deve incluir os atributos nome e valor .
O elemento Component inicia a declaração para a classe de teste de script. Esse elemento sempre deve ter um atributo id definido como o nome da classe.
Após o elemento Component, você pode inserir metadados de nível de classe usando o elemento TestClassProperty. Assim como o elemento ModuleProperty, deve ter os atributos de nome e valor .
Neste ponto, você também pode criar objetos e definir referências aos objetos. Consulte seção Outros componentes para obter mais informações. As linhas 15, 18, 49 e 52 no exemplo XML mostram como referenciar e inicializar o WEX. Logger.Log objeto.
O elemento público <> inclui as declarações de método de teste do módulo de script de teste. Você declara um método de teste especificando o nome do método de teste no atributo nome de um elemento <método>. Você também pode adicionar a propriedade de método de teste dentro do elemento <método>. Tal como acontece com propriedades em outros níveis, não é obrigatório. No entanto, se o adicionares, deves incluir os atributos nome e valor .
O elemento <script> identifica a linguagem do script de teste e abrange a implementação dos métodos de teste.
A seção <![CDATA[]]> contém a implementação real dos testes - o código escrito na linguagem de scripting. Nesta seção, você implementa os métodos de teste declarados na seção <public></public>.