TPTP tillhandahåller flera automatiseringstjänster som kan anropas utifrån Eclipse-arbetsmiljön. I tjänsterna ingår testkörning, utfrågning av testresultat och publicering av testresultat.
I det här avsnittet beskrivs hur du använder de inbyggda TPTP-automatiseringstjänsterna för att göra följande:
Testkörningstjänsten är till för den programmatiska starten, körningen och genereringen av testresultat. Testkörningstjänsten paketerar befintlig körningsramverksfunktionalitet och gör det aktuella fristående testkörningsramverkets metoder inaktuella. Med testkörningstjänsten går det att starta tester med en konsollös Eclipse-förekomst från ant-skript, shell-skript och slumpmässiga program. Det går att köra flera test samtidigt förutsatt att det finns tillräckligt med minne på den dator som kör testen. (Varje körning av en tjänst kräver en separat Eclipse-värdförekomst.) Även om tester körs på fjärrdator som använder TPTP-fjärrtestkörningsfunktioner och utplacering, är tjänstekunddatorn den dator som kör Eclipse-värdförekomster.
Se referensmaterialet för de testkörningstjänsteegenskaperna som stöds - samma egenskaper kan användas över klientautomatiseringsadaptrar. För ant-skript finns en uppsättning enkla ant-åtgärder för konfigurering av tjänsteegenskaper och körning av tjänsten. För shell-skript specificeras egenskaperna i det förväntade kommandoradsparadigmet (som använder tankstreck för egenskaper följda av blanksteg och sedan ett värde för förekomsten). För Java-program refereras till automatiseringsklienten och den används för konfigurering av egenskaperna och kontroll av tjänstens körning. En del klientadaptrar har ytterligare alternativ som krävs för den särskilda klientmiljön (eller erbjuds som extra funktioner från adaptern).
De automatiserade TPTP-tjänstekomponenterna är paketerade i insticksprogrammet org.eclipse.hyades.execution som representeras av tre jar-filer, några XML i plugin.xml och några poster i filen MANIFEST.MF,
tptp-automation-client.jar
(Den lättviktiga bit kod som
behövs för att upprätta klientsidan på tjänstebussen, starta Eclipse om så
behövs och köra tjänsten konsollöst. Jar-filen refereras när tests körs
från kommandoraden och shell-skript, liksom när test körs från slumpmässig
Java-kod.)tptp-automation-server.jar
(TPTP-automatiseringsservern. Den
läses in på begäran när tjänster efterfrågas och körs med ramverket. Den
implementerar Eclipse-tillämpningars kärnutökningspunkter som används som
mäklare och tjänstesökfunktion.)ant-tptp.jar
(Denna jar-fil har samma innehåll som
tptp-automation-client.jar har, men har ändrat namn så att det överensstämmer
med andra åtgärdsbibliotek.)Kontrollera att ant är korrekt installerat om tester ska köras utanför en Eclipse-förekomst som körs. Se efter i ant-dokumentationen hur du gör. Förutom standardinstallationen av ant, kopierar du ant-tptp.jar till ant-bibliotektskatalogen. Om ett test körs inuti Eclipse är ant redan installerat, men se till att inkludera ant-tptp.jar på den andra åtgärdernas flikar till ant-startkonfigurationen eller i avsnittet Global Entries Globala poster på inställningssidan till ant-klassökvägen. Det inbäddade exemplet på ant-skript nedan heter "test.xml" och kör inuti testprojekets unit-testmapp ett test som heter testA. Testprojektet är placerat i den specificerade arbetsytan "d:\development\workspace" och Eclipse-värdförekomsten är specificerad att vara "d:\development\eclipse". I referenslistan med stödda egenskaper finns andra giltiga egenskapskombinationer.
Exemplet nedan använder TPTP-teståtgärden även om den också är möjligt att köra ett test med TPTP-automatiseringsåtgärden. Den mer allmänna automatiseringsåtgärden är en ant-åtgärd för körning av slumpmässiga TPTP-automatiseringstjänster som skiljer sig från den mer specifika TPTP-teståtgärden. Teståtgärden är en typsäker åtgärd som särskilt skapats för start av testkörningstjänsten. Fler exempel på ant-skript finns i paketet org.eclipse.hyades.automation.test som finns i src-automatiseringsklientkällmappen för insticksprogrammet 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>
Kontrollera att du har ett korrekt konfigurerat ant för att köra TPTP-automatiserade tjänster.
(Hur du kör test från ant beskriv i avsnittet ovan.) Exemplet
nedan visar hur du använder åtgärden tptp:execution för att köra flera tester och hur du använder åtgärden
tptp:interrogation till att frågar ut resultaten av testkörningarna.
Båda dessa ant-uppgifter accepterar flera ant-filesets
och/eller
filelists
som gör att du kan använda jokertecken eller direkt
specificera flera filer som indata till åtgärderna. I exemplet körs alla
testuppsättningarna i projektet TPTPJUnitTests och uppsättningen med alla
resulterade .execution-filer returneras som en filelist
i den ant-variabel som anges (i det här fallet "tptp.test.results".) Du kan
sedan överföra denna filelist
som indata till tjänsten tptp:interrogation,
som frågar ut var och en av körfilerna för att fastställa ett generellt utfall
och tilldela det till den ant-variabel som anges (i det här fallet "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>
Kontrollera att du har ett korrekt konfigurerat ant för att köra TPTP-automatiserade tjänster.
(Hur du kör test från ant beskriv i avsnittet ovan.) Exemplet
nedan visar hur du använder åtgärden tptp:execution för att köra flera tester och hur du använder åtgärden
tptp:publication för att generera BIRT-baserade rapporter från testkörningarnas resultat. Publiceringsåtgärden
(publication) accepterar flera ant-filesets
och/eller
filelists
som gör att du kan använda jokertecken eller direkt
specificera flera filer som indata. I exemplet körs alla
testuppsättningarna i projektet TPTPJUnitTests och uppsättningen med alla
resulterade .execution-filer returneras som en filelist
i den ant-variabel som anges (i det här fallet "tptp.test.results".) Vi kan
sedan överföra denna filelist
som indata till tjänsten tptp:publication,
som genererar en TPTP-körningsrapport genom att använda standardrapportmallen
(TestExecution.rptdesign, finns i insticksprogrammet org.eclipse.tptp.test.report.birt)
och placera den på den angivna platsen (i det här fallet 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 anpassa funktionaliteten hos åtgärden tptp:publication genom att specificera en annan BIRT-rapportmall, t.ex. TabularReport.rptdesign som finns i instickprogrammets mallkatalog org.eclipse.tptp.test.report.birt. Du kan också anpassa funktionaliteten genom att använda publiceringstjänsten "publish-testsuites" och ange testuppsättningar som indata till publiceringstjänsten i stället för filer med testkörningsresultat. Om du använder publiceringstjänsten "publish-testsuites" och överför testuppsättningsfilerna som indata till publiceringstjänsten, måste du också ange start- och slutdatum för rapportfönstret (som används till att utfråga arbetsytan i avsikt att hitta alla körningsresultat inom tidsfönstret). Exemplet nedan visar hur du kör en rapport på alla testuppsättningar i projektet Test1, väljer alla körningsresultat från de senaste 60 dagarna och genererar rapporten med hjälp av rapport i tabellformat (TabularReport).
<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 köras direkt från kommandoraden och shell-skript där testegenskaperna får formen av kommandoradsargument. TPTP-automatiseringsklientadaptrarna tillhandahåller en .bat-fil och en .cmd-fil för användning i Windows och en sh-fil för användning i Linux. Det går att specificera långa uppsättningar argument och/eller frekvent upprepade argument i en konfigurationsfil för att minimera skrivandet för att köra testkörningstjänsten från kommandoraden. Shell-automatiseringsklientadaptern visas som en textfil (för batch-filen eller skriptet) och en komplementär Java-komponent. Båda måste finnas för att test ska kunna köras från kommandoraden. Alla TPTP-automatiseringsklientadaptrarna kan hittas i tptp-automation-client.jar även om ant-tptp.jar kopierar en del av adapterkoden i form av en ant-jar (så sker därför att TPTP-åtgärdens jar-namn ska fortsätta överensstämma med de andra tillgängliga ant-åtgärderna).
Testkörningstjänstens egenskaper anges genom att egenskapens namn får ett prefix med ett bindestreck för att säkert ange Eclipse hem- eller rotkatalog.
Test kan startas från vilken Java-tillämpning som helst och de andra klientautomatiseringsadaptrarna använder faktiskt Java-adaptern internt för att "haka på" (hook) tjänstens buss. Det enda som krävs för att köra test från en del Java-kod är att se till att tptp-automation-client.jar är korrekt refererad (i Eclipse innebär det att biblioteket finns i Java-projektets byggsökväg) och naturligtvis att alla normala TPTP-krav uppfylls, t.ex. så måste agentkontrollanten köras.
Java-automatiseringsklientadaptern tillhandahåller en mycket enkel API för körning av test med alla specificerbara egenskaper som finns i ett standardobjekt för Java-egenskaper. I följande exempel körs samma test som i exemplet med ant-skript ovan. Observera att det tjänste-ID som överförts till körningsmetoden är tjänste-ID:t för TPTP-testkörningstjänsten (tjänsten stöder alla grundläggande TPTP-testtyper). Det går också att köra andra automatiserade tjänster, om sådana finns tillgängliga, utom att ändra ID:t och de konfigurerade egenskaperna i koden nedan.
// 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);
Närliggande begrepp
Översikt över ramverket för automatiserade tjänster
Närliggande uppgifter
Starta tester från skript och tillämpningar
Närliggande referenser
Egenskaper för testkörningstjänsten som stöds
(C) Copyright IBM Corporation 2005,2006. All Rights Reserved