TPTP inneholder flere automatiserbare tjenester som kan aktiveres utenfor konteksten til Eclipse-arbeidsbenken. Tjenestene omfatter testutføring, evaluering av testresultater og publisering av testresultater.
Dette hjelpeemnet beskriver hvordan du bruker de innebygde automatiserbare TPTP-tjenestene når du skal gjøre dette:
Testutføringstjenesten skal brukes til programmatisk start, utføring og generering av testresultater. Testutføringstjenesten dekker eksisterende rammeverkfunksjonalitet for testutføring og gjør at gjeldende rammeverkmetoder for frittstående testutføring er foreldet. Ved hjelp av testutføringstjenesten kan tester startes med Eclipse i kommandogrensesnittet fra ant-skript, skallskript og tilfeldige programmer. Hvis det er nok minne på maskinen, kan flere tester kjøres samtidig. (Hver tjenesteutføring krever for øyeblikket en egen forekomst av Eclipse-verten). Selv om testene kjøres på eksterne maskiner med TPTPs funksjoner for ekstern testutføring og distribusjon, er tjenestebrukerens maskin den maskinen som kjører Eclipse-vertsforekomsten.
I referansematerialet ser du de støttede egenskapene for testutføringstjenesten - de samme egenskapene er gyldige for klientautomatiseringsadaptere. For ant-skript følger det med et sett med enkle ant-oppgaver for definering av tjenesteegenskaper og utføring av tjenesten. For skallskript er egenskapene oppgitt i det forventede kommandolinjeparadigmet (med tankestreker for egenskaper etterfulgt av mellomrom og deretter for eksempel en verdi). For Java-programmer vil automatiseringsklientens jar-filer bli referert til og brukt til å definere egenskaper og styre tjenesteutføringen. Noen klientadaptere kan ha andre alternativer som kreves for det bestemte klientmiljøet (eller som tilbys som ekstrafunksjoner fra den adapteren).
TPTPs automatiserbare tjenestekomponenter er pakket i plugin-modulen org.eclipse.hyades.execution, representert med tre jar-filer, XML i plugin.xml og noen oppføringer i MANIFEST.MF-filen.
tptp-automation-client.jar
(Den ekle koden som trengs for å opprette klientsiden av
servicebussen, starte Eclipse hvis nødvendig, og utføre tjenester i kommandolinjegrensesnittet. Det blir referert
til denne jar-filen når tester kjøres fra kommandolinjen og skallskript, og når tester kjøres fra
tilfeldig Java-kode.)tptp-automation-server.jar
(TPTPs automatiseringsserver, lastes inn på forespørsel etter som
tjenester blir evaluert og utført ved hjelp av rammeverket, implementerer Eclipse-kjerneapplikasjonenes utvidelsespunkt, brukes som formidler og tjenesteposisjonsviser.)ant-tptp.jar
(Denne jar-filen har samme innhold som tptp-automation-client.jar, men navnet er
endret for at det skal samsvare med andre ant-oppgavebiblioteker)Kontroller at ant er installert på riktig måte hvis du skal kjøre tester utenfor en aktiv Eclipse-forekomst - du ser hvordan du gjør det, i ant-dokumentasjonen. I tillegg til en standard ant-installering, kopierer du også ant-tptp.jar til ant-bibliotekkatalogen sammen med andre oppgaver. Hvis ant kjøres i Eclipse, er det allerede installert, men du må passe på å inkludere ant-tptp.jar på flippen for tilleggsoppgaver i ant-oppstartkonfigurasjonen eller under Globale oppføringer på preferansesiden for Ant-klassebane. Det innebygde ant-eksempelskriptet nedenfor er et eksempel på et ant-skript kalt "test.xml" som utfører en test kalt testA i mappen for enhetstester i testprosjektet. Testprosjektet ligger i det oppgitte arbeidsområdet "d:\development\workspace", og Eclipse-vertsforekomsten er oppgitt som "d:\development\eclipse". I referanselisten til de støttede egenskapene finner du andre gyldige egenskapskombinasjoner.
Eksempelet nedenfor bruker TPTP-testoppgaven, men det er også mulig å utføre en test med TPTP-automatiseringsoppgaven. En mer generell automatiseringstest er en ant-oppgave for utføring av tilfeldige TPTP-automatiserbare tjenester som står i kontrast til den mer spesifikke TPTP-testoppgaven. Testoppgaven er en typesikker oppgave som er opprettet spesielt for å starte testutføringstjenesten. Det er flere ant-skripteksempler i org.eclipse.hyades.automation.test-pakken i org.eclipse.hyades.execution-plugin-modulens src-automation-client-kildemappe.
<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> Dette ant-skriptet tester TPTP-automatiseringens ant-oppgaveklientadaptere og kan også brukes til å teste den underliggende utføringen av TPTPs automatiserbare tjenester via TPTP-automatiseringsserveren </description> <!-- Utfør TPTP-testpakker --> <target name="test" description="Utfører TPTP-testpakker med standard TPTP-ant-oppgaver> <!-- Utfør en TPTP-testpakke med testoppgaven og oppgi arbeidsområdet --> <tptp:test workspace="D:\development\workspace" project="tests" suite="unit-tests/testA.testsuite" synchronicity="synchronous"/> </target> </project>
Kontroller at ant er konfigurert for å kjøre automatiserbare TPTP-tjenester
(se avsnittet ovenfor om hvordan du kjører tester fra ant.) Eksempelet nedenfor viser hvordan du
utfører flere tester ved hjelp av tptp:execution-oppgaven og hvordan du evaluerer resultatene av testutføringene
ved hjelp av tptp:interrogation-oppgaven.
Begge disse ant-oppgaver godtar flere ant-filesets
og/eller
ant-filelists
, og du kan bruke jokertegn eller oppgi flere filer direkte
som inndata for oppgavene. I dette eksempelet utfører vi alle testpakkene
i TPTPJUnitTests-prosjektet, og settet med
alle resulterende .execution-filer blir returnert som en filelist
i ant-variabelen vi oppgir (i dette tilfellet "tptp.test.results"). Vi sender
deretter vår filelist
som inndata til tptp:interrogation-tjenesten,
som evaluerer hver enkelt utføringsfil for å bestemme et samlet testutfall og
tildeler det til ant-variabelen vi oppgir (i dette tilfellet
"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>
Kontroller at ant er konfigurert for å kjøre automatiserbare TPTP-tjenester
(se avsnittet ovenfor om hvordan du kjører tester fra ant.) Eksempelet nedenfor viser hvordan du
utfører flere tester ved hjelp av tptp:execution-oppgaven og hvordan du genererer BIRT-baserte rapporter fra resultatene av testutføringene
ved hjelp av tptp:publication-oppgaven. Publiseringsoppgaven godtar også flere ant-filesets
og/eller
ant-filelists
, og du kan bruke jokertegn eller oppgi flere filer direkte
som inndata. I dette eksempelet utfører vi alle testpakkene
i TPTPJUnitTests-prosjektet, og settet med
alle resulterende .execution-filer blir returnert som en filelist
i ant-variabelen vi oppgir (i dette tilfellet "tptp.test.results"). Vi sender deretter
vår filelist
som inndata til tptp:publication-tjenesten,
som genererer en TPTP-utføringsrapport ved hjelp av standard rapportmal
(TestExecution.rptdesign, finnes i org.eclipse.tptp.test.report.birt-plugin-modulen)
og plasserer den der vi oppgir (i dette tilfellet 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 virkemåten til tptp:publication-oppgaven ved å oppgi en annen BIRT-rapportmal, for eksempel TabularReport.rptdesign som finnes i templates-katalogen til plugin-modulen org.eclipse.tptp.test.report.birt. Du kan også tilpasse virkemåten ved hjelp av publish-testsuites-publiseringstjenesten og oppgi testpakkene som inndata til publiseringstjenesten i stedet for resultatfilene fra testutføringen. Hvis du bruker publish-testsuites-publiseringstjenesten og sender testpakkefilene som inndata til publiseringstjenesten, må du også oppgi en start- og sluttdato for rapportperioden (som også blir brukt til spørring i arbeidsområdet for å finne alle utføringsresultater i denne perioden). Eksempelet nedenfor viser hvordan du kjører en rapport for alle testpakkene i prosjektet Test1, velger alle utføringsresultatene fra de siste 60 dagene, og generer rapporten med rapportdesignen Tabular.
<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>
Tester kan utføres direkte fra kommandolinjen og skallskript med testegenskaper som er i form av kommandolinjeargumenter. TPTPs automatiseringsklientadaptere har en .bat- og .cmd-fil som brukes i Windows, og en .sh -fil som brukes i Linux-operativsystemet. Det er mulig å oppgi lange sett med argumenter og/eller hyppig gjentatte argumenter i en config-fil for å minimere skrivingen som trengs for å kjøre testutføringstjenesten fra kommandolinjen. Automatiseringsklientadapteren for skall vises som en tekstfil (for satsfilen eller skriptet) og en tilhørende Java-komponent - begge må finnes hvis det skal utføres tester fra kommandolinjen. Alle automatiseringsklientadapterne i TPTP finnes i tptp-automation-client.jar selv om ant-tptp.jar replikerer noe av adapterkoden i form av en ant-jar-fil (dette er gjort for at navnet på TPTPs oppgave-jar-fil skal samsvare med de andre tilgjengelige ant-oppgavene).
Testutføringstjenestens egenskaper defineres ved en bindestrek som prefiks foran egenskapsnavnene, og Eclipses hjemme- eller rotkatalog oppgis også.
Tester kan startes fra en hvilken som helst Java-applikasjon, og de andre klientautomatiseringsadapterne, for eksempel ant- og skalladapterne, bruker faktisk Java-adapteren internt til å binde seg til tjenestebussen. Det eneste kravet til utføring av tester fra Java-kode er å passe på at det er referert til tptp-automation-client.jar (i Eclipse betyr det å ha biblioteket i Java-prosjektets byggebane). I tillegg gjelder selvsagt alle de vanlige TPTP-kravene, for eksempel at agentkontrolleren må være aktiv.
Java-automatiseringsklientadapteren har en svært enkel API for utføring av tester der alle egenskaper som kan oppgis, ligger i et standard Java-egenskapsobjekt. Nedenfor ser du et eksempel på hvordan du utfører samme test som ble introdusert i forrige ant-skripteksempel. Legg merke til at tjeneste-IDen som sendes til utføringsmetoden, er tjeneste-IDen for TPTP-testutføringstjenesten (denne tjenesten støtter alle de grunnleggende TPTP-testtypene) - det er også mulig å utføre andre automatiserbare tjenester, hvis tilgjengelig, ved å endre IDen og egenskapene som er konfigurert i koden nedenfor.
// Opprett Java-adapter knyttet til oppgitt Eclipse Home AutomationClientAdapter automation = new AutomationClientAdapter ("d:\\development\\eclipse"); // Opprett og konfigurer et egenskapsobjekt Properties properties = new Properties(); properties.setProperty("workspace", "D:\\development\\workspace"); properties.setProperty("project", "tests"); properties.setProperty("suite", "unit-tests/testA.testsuite"); // Utfør tjenesten nedenfor med de konfigurerte egenskapene properties automation.execute("org.eclipse.hyades.test.tools.core.execute", properties);
Beslektede begreper
Oversikt over det automatiserbare tjenesterammeverket
Beslektede oppgaver
Starte tester fra skript og
applikasjoner
Beslektede referanser
Støttede egenskaper for
testutføringstjenesten
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved