TPTP stiller flere automatiseringsserviceprogrammer til rådighed, som kan startes uden for Eclipse-arbejdsbænken. Serviceprogrammerne inkluderer testudførelse, undersøgelse af testresultat og publicering af testresultat.
I dette emne i hjælpen beskrives, hvordan du bruger de indbyggede TPTP-automatiseringsserviceprogrammer til at gøre følgende:
Serviceprogrammet til testudførelse er beregnet til start, udførelse og generering af testresultater fra programmer. Serviceprogrammet til testudførelse indpakker eksisterende funktionalitet til testudførelse og erstatter de aktuelle enkeltstående metoder til testudførelse. Ved hjælp af serviceprogrammet til testudførelse kan test startes via en hovedløs Eclipse fra Ant-scripts, shell-scripts og diverse programmer. Hvis der er tilstrækkelig hukommelse på den udførende maskine, kan flere test udføres på samme tid (hver udførelse af serviceprogrammet kræver p.t. en separat værtsforekomst af Eclipse). Selvom test udføres på eksterne maskiner ved hjælp af eksterne TPTP-funktioner og distribution af testudførelse, er det serviceprogramforbrugerens maskine, som udfører Eclipse-værtsforekomsterne.
Se referenceemnet vedrørende egenskaberne for de understøttede serviceprogrammer til testudførelse. Samme egenskaber gælder for alle klientautomatiseringsadaptere. For Ant-scripts er beskrevet en række enkle Ant-opgaver, der går ud på at angive serviceprogramegenskaber og udføre serviceprogrammet. For shell-scripts angives egenskaberne med den forventede kommandolinjesyntaks (f.eks. en bindestreg før egenskaben efterfulgt af et mellemrum og derefter en værdi). For Java-programmer vil der blive refereret til JAR-filerne til klientautomatisering, og de vil blive anvendt til at angive egenskaber for og styre udførelsen af serviceprogrammer. Nogle klientadaptere kan have yderligere indstillinger, der er påkrævet i det pågældende klientmiljø (eller som leveres som ekstra funktioner til adapteren).
TPTP-komponenterne til automatiseringsserviceprogrammer er pakket i plugin'en org.eclipse.hyades.execution, der repræsenteres i tre JAR-filer, noget XML i plugin.xml og nogle indgange i filen MANIFEST.MF.
tptp-automation-client.jar
(denne JAR-fil er den tynde kodedel, der bruges til at etablere klientsiden af serviceprogrambussen, starte Eclipse efter behov og udføre serviceprogrammer hovedløst. Der refereres til den, når der udføres test fra kommandolinjen, fra shell-scripts og fra Java-kode).tptp-automation-server.jar
(TPTP-automatiseringsserveren indlæses efter behov, når der sendes forespørgsler til serviceprogrammer, og udføres vha. strukturen, implementerer Eclipse-kerneudvidelsespunktet til programmer, bruges som mægler og finder serviceprogrammer)ant-tptp.jar
(denne JAR-fil har samme indhold som
tptp-automation-client.jar, men er omdøbt, så den er konsistent med andre Ant-opgavebiblioteker)Hvis der skal udføres test uden for en aktiv Eclipse-forekomst, skal du sørge for, at Ant er installeret korrekt. Den korrekte konfiguration er beskrevet i Ant-dokumentationen. Ud over Ant-standardinstallationen skal du også kopiere ant-tptp.jar til Ant-biblioteket lib, som indeholder andre opgaver. Hvis test udføres inden for Eclipse, er Ant allerede installeret, men sørg for at inkludere ant-tptp.jar på skillebladet med yderligere opgaver i Ant-startkonfigurationen eller i afsnittet Globale indgange på indstillingssiden for Ant Classpath. Eksemplet på et Ant-script nedenfor er et Ant-script ved navn "test.xml", som udfører en test ved navn testA i testprojektets unit-tests-folder. Testprojektet er placeret i arbejdsområdet "d:\development\workspace", og Eclipse-værtsforekomsten er "d:\development\eclipse". I referenceemnet findes en liste med de understøttede egenskaber og andre gyldige kombinationer af egenskaber.
I eksemplet nedenfor bruges TPTP-testopgaven, men det er også muligt at udføre en test vha. TPTP-automatiseringsopgaven. Den mere generelle automatiseringsopgave er en Ant-opgave til udførelse af diverse TPTP-automatiseringsserviceprogrammer i modsætning til den mere specifikke TPTP-testopgave. Testopgaven er en typesikker opgave, der er oprettet specielt med henblik på at starte serviceprogrammer til testudførelse. Der findes flere eksempler på Ant-scripts i pakken org.eclipse.hyades.automation.test i src-automation-client-kildefolderen for plugin'en org.eclipse.hyades.execution.
<project name="TPTP Ant Tasks Test Script" default="test" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <property name="eclipse.home" value="D:\development\eclipse"/> <description> This ant script tests the TPTP automation ant task client adapters and also can be used to test the underlying execution of TPTP automatable services via the TPTP automation server </description> <!-- Execute TPTP test suites --> <target name="test" description="Executes TPTP Test Suites using default TPTP Ant Tasks"> <!-- Execute a TPTP test suite using the test task and providing the workspace --> <tptp:test workspace="D:\development\workspace" project="tests" suite="unit-tests/testA.testsuite" synchronicity="synchronous"/> </target> </project>
Sørg for, at Ant er konfigureret korrekt til at udføre TPTP-automatiseringsserviceprogrammer (se afsnittet ovenfor om udførelse af test fra Ant). Næste eksempel viser, hvordan du kan bruge opgaven tptp:execution til at udføre flere test, og hvordan du kan bruge opgaven
tptp:interrogation til at undersøge resultatet af disse testudførelser.
Begge Ant-opgaverne kan modtage flere Ant-filsæt
og/eller fillister
, så du kan bruge jokertegn eller direkte angive flere filer som input til opgaverne. I dette eksempel udføres alle testserierne i projektet TPTPJUnitTests, og hele sættet med .execution-resultatfiler returneres som en filliste
i den Ant-variabel, der angives (i dette tilfælde "tptp.test.results"). Derefter overføres fillisten
som input til serviceprogrammet tptp:interrogation, der sender en forespørgsel til hver af .execution-filerne for at finde den overordnede dom, som derefter overføres til den angivne Ant-variabel (i dette tilfælde
"tptp.test.verdict").
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Define common properties for all automatable services --> <property name="tptp.test.workspace" value="C:\eclipsecon\eclipse\workspace"/> <property name="tptp.test.project" value="TPTPJUnitTests" /> <property name="tptp.test.connection" value="tptp:rac://localhost:10002/default"/> <property name="tptp.automation.eclipse" value="C:\eclipseconwb_birt\eclipse" />
<!-- Define script-local properties, that vary by installation --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/>
<target name="main" depends="test-execution, test-results-interrogation"/>
<!-- Execute test suites using default results name --> <target name="test-execution"> <echo message="Executing test suite..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}"> <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Interrogate test suite results for verdict --> <target name="test-results-interrogation"> <echo message="Interrogating test suite results..." /> <condition property="tptp.test.success"> <tptp:interrogation verdictproperty="tptp.test.verdict"> <filelist refid="tptp.test.results"/> </tptp:interrogation> </condition> <echo message="The overall test result verdict is: '${tptp.test.verdict}'" /> </target>
</project>
Sørg for, at Ant er konfigureret korrekt til at udføre TPTP-automatiseringsserviceprogrammer (se afsnittet ovenfor om udførelse af test fra Ant). Næste eksempel viser, hvordan du kan bruge opgaven tptp:execution til at udføre flere test, og hvordan du kan bruge opgaven
tptp:publication til at generere BIRT-baserede rapporter ud fra resultaterne af disse testudførelser.
Publiceringsopgaven kan også modtage flere Ant-filsæt
og/eller fillister
, så du kan bruge jokertegn eller direkte angive flere filer som input. I dette eksempel udføres alle testserierne i projektet TPTPJUnitTests, og hele sættet med .execution-resultatfiler returneres som en filliste
i den Ant-variabel, der angives (i dette tilfælde "tptp.test.results"). Derefter overføres fillisten
som input til serviceprogrammet tptp:publication, som genererer en TPTP-udførelsesrapport ved hjælp af standardrapportskabelonen (TestExecution.rptdesign, der findes i plugin'en org.eclipse.tptp.test.report.birt) og placerer den det angivne sted (i dette tilfælde i c:\temp\report.html).
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Define common properties for all automatable services --> <property name="tptp.test.workspace" value="C:\eclipsecon\eclipse\workspace"/> <property name="tptp.test.project" value="TPTPJUnitTests" /> <property name="tptp.test.connection" value="tptp:rac://localhost:10002/default"/> <property name="tptp.automation.eclipse" value="C:\eclipseconwb_birt\eclipse" />
<!-- Define script-local properties, that vary by installation --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/> <property name="report.publication.location" location="c:/temp" />
<target name="main" depends="test-execution, test-results-publication"/>
<!-- Execute test suites using default results name --> <target name="test-execution"> <echo message="Executing test suite..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}"> <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Publish test suite results report -->
<target name="test-results-publication"> <echo message="Publishing test suite results report..." /> <tptp:publication report="${report.publication.location}/report.html"> <filelist refid="tptp.test.results"/> </tptp:publication> </target>
</project>
Du kan tilpasse funktionsmåden for opgaven tptp:publication ved at angive en anden BIRT-rapportskabelon, f.eks. TabularReport.rptdesign, der findes i biblioteket templates for plugin'en org.eclipse.tptp.test.report.birt. Du kan også tilpasse funktionsmåden ved at bruge publiceringsserviceprogrammet publish-testsuites og angive testserier som input til publiceringsserviceprogrammet i stedet for resultatfiler fra testudførelsen. Hvis du bruger publiceringsserviceprogrammet publish-testsuites og overfører testseriefiler som input til det, skal du også angive en start- og slutdato for rapportvinduet (som bruges til at sende en forespørgsel til arbejdsområdet om alle udførelsesresultaterne i det tidsrum). Eksemplet herunder viser, hvordan du udfører en rapport over alle testserierne i projektet Test1, vælger alle udførelsesresultater fra de seneste 60 dage og genererer rapporten vha. tabelrapportdesignet.
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Define common properties for all automatable services --> <property name="tptp.test.workspace" value="C:\eclipsecon\eclipse\workspace"/> <property name="tptp.test.project" value="TPTPJUnitTests" /> <property name="tptp.test.connection" value="tptp:rac://localhost:10002/default"/> <property name="tptp.automation.eclipse" value="C:\eclipseconwb_birt\eclipse" />
<!-- Define script-local properties, that vary by installation --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/> <property name="report.publication.location" location="c:/temp" /> <property name="tptp.publication.service" value="org.eclipse.tptp.test.report.birt.publish-testsuites"/>
<!-- Run the report --> <target name="main" depends="test-results-publication"/>
<target name="set-date-range"> <!-- Use standard ant tstamp mechanisms to specify the desired date range --> <!-- This example uses a range between today and 60 days days prior --> <tstamp> <format property="startDateTime" pattern="MM/dd/yyyy hh:mm aa" offset="-60" unit="day"/> </tstamp> <tstamp> <format property="endDateTime" pattern="MM/dd/yyyy hh:mm aa"/> </tstamp> </target>
<!-- Publish test suite results report --> <target name="test-results-publication" depends="set-date-range"> <echo message="Publishing test suite results report..." /> <tptp:publication report="${report.dir}/report.html" reportTemplateLocation="C:\TPTP_TestPass\ReportBuild\eclipse\plugins\org.eclipse.tptp.test.report.birt_4.2.0.v200605180959\templates\TabularReport.rptdesign" startDateTime="${startDateTime}" endDateTime="${endDateTime}" > <fileset dir="${project.dir}"> <include name="**/*.testsuite" /> </fileset> </tptp:publication> </target>
</project>
Test kan udføres direkte fra kommandolinjen og shell-scripts, hvor testegenskaberne angives som kommandolinjeargumenter. Til TPTP-klientautomatiseringsadapterne findes en .bat-fil og en .cmd-fil til brug i Windows og en .sh-fil til brug i styresystemet Linux. Du kan angive lange sæt argumenter og/eller argumenter, du ofte bruger, i en konfigurationsfil for at begrænse indtastningen, når du udfører serviceprogrammet til testudførelse fra kommandolinjen. Shell-klientautomatiseringsadapteren manifesteres som en tekstfil (for kommandofilen eller scriptet) og en supplerende Java-komponent. Begge skal eksistere, før du kan udføre test fra kommandolinjen. Alle de klientautomatiseringsadaptere, der leveres med TPTP, findes i tptp-automation-client.jar. En del af adapterkoden er dog gentaget i ant-tptp.jar i form af en Ant JAR-fil (formålet var at give JAR-filen til TPTP-opgaven et navn, der er konsistent med andre tilgængelige Ant-opgaver).
Du angiver egenskaberne for serviceprogrammet til testudførelse ved at sætte en bindestreg før egenskabsnavnet og sørge for at angive Eclipse-hjemmebiblioteket eller -rodbiblioteket.
Du kan starte test fra et hvilket som helst Java-program. Faktisk bruger de andre klientautomatiseringsadaptere, f.eks. Ant- og shell-adapterne, internt Java-adapteren til at oprette en hook til serviceprogrambussen. Den eneste forudsætning for at udføre test fra Java-kode er at sørge for, at der refereres korrekt til tptp-automation-client.jar (i Eclipse vil det sige, at biblioteket skal findes i Java-projektets byggesti) ud over de sædvanlige TPTP-forudsætninger, f.eks. at Agent Controller skal være aktiv.
Java-klientautomatiseringsadapteren udgør et meget simpelt API til udførelse af test, hvor alle de egenskaber, der kan angives, er indeholdt i et Java-standardobjekt med egenskaber. Herunder følger et eksempel på udførelse af samme test som i Ant-scripteksemplet ovenfor. Bemærk, at den serviceprogram-id, der overføres til metoden execute, er serviceprogram-id'en for TPTP-serviceprogrammet til testudførelse (serviceprogrammet understøtter alle de grundlæggende TPTP-testtyper). Det er også muligt at udføre eventuelle andre automatiseringsserviceprogrammer og ændre den id og de egenskaber, der er konfigureret i nedenstående kode.
// Create the Java adapter associated with the specified Eclipse home AutomationClientAdapter automation = new AutomationClientAdapter ("d:\\development\\eclipse"); // Create and configure a properties object Properties properties = new Properties(); properties.setProperty("workspace", "D:\\development\\workspace"); properties.setProperty("project", "tests"); properties.setProperty("suite", "unit-tests/testA.testsuite"); // Execute the service named below using the configured properties automation.execute("org.eclipse.hyades.test.tools.core.execute", properties);
Relaterede begreber
Oversigt over struktur for automatiseringsserviceprogrammer
Relaterede opgaver
Start test fra scripts og programmer
Relaterede referencer
Understøttede egenskaber for serviceprogram til testudførelse
(C) Copyright IBM Corporation 2005,2006. All Rights Reserved.