Platforma TPTP poskytuje několik automatizovatelných služeb, které lze vyvolat zvenčí kontextu pracovní plochy eclipese. Mezi služby patří provedení testu, prozkoumání výsledku testu a publikování výsledku testu.
Toto téma nápovědy vysvětluje, jak používat zabudované automatizovatelné služby platformy TPTP k následujícím činnostem:
Služba provedení testu je poskytována pro programové spuštění a provedení testu a pro generování výsledků testu. Služba provedení testu obaluje stávající funkčnost upoutání provedení testu a způsobuje, že současné samostatné metody upoutání provedení testu se již nepoužívají. Pomocí služby provedení testu se mohou testy spouštět pomocí platformy Eclipse ze skriptů nástroje Ant, skriptů nadstavby a z libovolných programů. V témže čase je možné spustit více testů, za předpokladu existence dostatečně velké paměti na provádějícím počítači (každé provedení služby vyžaduje v současné době samostatnou instanci hostitele platformy Eclipse). I když se testy provádějí na vzdálených počítačích pomocí vlastností vzdáleného provádění testu a implementace platformy TPTP, počítač konzumentu služby je počítačem, na kterém běží instance hostitele platformy Eclipse.
Nahlédněte do referenčních materiálů stran podporovaných vlastností služby provedení testu -- stejné vlastnosti platí na všech adaptérech klientské automatizace. Pokud se týče skriptů Ant, k dispozici je sada jednoduchých úloh Ant k nastavení vlastností služby a provedení služby. Pokud se týče skriptů nadstavby, vlastnosti se zadávají v očekávaném paradigmatu příkazového řádku (pomocí pomlček pro vlastnosti, za níž bude následovat mezera a potom například hodnota). Pokud se týče programů Java, automatizační soubory JAR klienta budou odkazované a používané k nastavení vlastností a na ovládání provedení služby. Některé klientské adaptéry mohou mít přídavné volby, které jsou nezbytné pro konkrétní klientské prostředí (nebo nabízené tímto adaptérem jako vlastnosti navíc).
Komponenty automatizovatelné služby TPTP jsou baleny v modulu plug-in org.eclipse.hyades.execution , který představují tři soubory JAR, některé soubory XML v plugin.xml a některé položky v souboru MANIFEST.MF.
tptp-automation-client.jar
(Lehká část kódu potřebná na navázání klientské strany sběrnice služby, v případě potřeby na spuštění platformy Eclipse a provedení služeb bez hlavičky; na tento soubor JAR budou odkazy v případě spouštění testů z příkazového řádku, ze skriptů nadstavby a také při spouštění testů z libovolného kódu Java).tptp-automation-server.jar
(Automatizační server TPTP, zavedený na vyžádání jak jsou služby dotazovány a pomocí rámce prováděny, implementuje jádro bodu rozšíření aplikací platformy Eclipse, používané jako zprostředkovatel a lokátor služby)ant-tptp.jar
(Tento soubor JAR má stejný obsah jako tptp-automation-client.jar, ale je přejmenován, aby byl konzistentní s ostatními knihovnami úloh nástroje Ant)Zajistěte, aby nástroj Ant byl náležitě nainstalován, pokud se testy mají spouštět mimo běžící instanci platformy Eclipse -- aby toto bylo náležitě nastaveno, nahlédněte do dokumentace nástroje Ant. Kromě standardní instalace nástroje Ant, okopírujte také ant-tptp.jar do adresáře knihovny nástroje Ant spolu s ostatními úlohami. Pokud nástroj Ant běží uvnitř platformy Eclipse, je již instalován, avšak zajistěte, aby ant-tptp.jar byl zahrnut na kartě dalších úloh v konfiguraci spuštění nástroje Ant nebo v části Globální položky na stránce předvoleb Cesty ke třídě nástroje Ant. Níže vložený ukázkový skript nástroje Ant je příkladem na skript Ant, pojmenovaný "test.xml", který provádí test nazvaný testA uvnitř složky jednotkových testů v projektu testu. Projekt testu je umístěn v zadaném pracovním prostoru "d:\development\workspace" a instance hostitele platformy Eclipse je specifikována jako "d:\development\eclipse". Nahlédněte do referenčního seznamu podporovaných vlastností, kde jsou uvedeny další platné kombinace vlastností.
Níže uvedený příklad používá testovací úlohy TPTP i když je také možné provést test pomocí úlohy automatizace TPTP. Obecnější automatizační úloha je úloha nástroje Ant na provádění libovolných automatizovatelných služeb platformy TPTP, což kontrastuje s konkrétnější úlohou modulu TPTP Test. Testovací úloha je úloha bezpečného typu konkrétně vytvořená pro spouštění služby provedení testu. Další skripty nástroje Ant jsou uvedeny v modulu plug-in org.eclipse.hyades.execution, ve zdrojové složce src-automation-client balíčku org.eclipse.hyades.automation.test.
<project name="Skript testovací úlohy TPTP Ant" default="test" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <property name="eclipse.home" value="D:\development\eclipse"/> <description> Tento skript Ant testuje klientské adaptéry úlohy Ant automatizace platformy TPTP a také jej lze použít na testování základního provedení automatizovatelných služeb platformy TPTP prostřednictvím automatizačního serveru platformy TPTP </popis> <!-- Provést testovací sady platformy TPTP --> <target name="test" description="Provede testovací sady platformy TPTP pomocí výchozích úloh Ant platformy TPTP"> <!-- Provede testovací sadu platformy TPTP pomocí testovací úlohy a poskytuje pracovní prostor --> <tptp:test workspace="D:\development\workspace" project="testy" suite="unit-tests/testA.testsuite" synchronicity="synchronní"/> </target> </project>
Zkontrolujte, zda máte pro spuštění automatizovatelných služeb platformy TPTP správně nakonfigurovaný nástroj Ant
(ohledně spouštění testů z nástroje Ant viz výše uvedená část.) Níže uvedené příklady ukazují, jak použít úlohu tptp:execution ke spuštění více testů a jak použít úlohu tptp:interrogation k prozkoumání výsledků těchto provedených testů.
Obě tyto úlohy nástroje Ant akceptují vícenásobné množin souborů (filesets)
nebo
seznamů souborů (filelists)
Ant, což vám umožňuje používat zástupné znaky nebo přímo specifikovat více souborů jako vstupy pro úlohy. V tomto příkladu provedeme všechny testovací sady v projektu TPTPJUnitTests a množina všech souborů .execution se nám vrátí jako filelist
v proměnné nástroje Ant, kterou zadáme (v tomto případě "tptp.test.results".) Potom tento seznam souborů (filelist)
předáme jako vstup do služby tptp:interrogation, která prozkoumá každý z těchto prováděcích souborů, aby určila celkový verdikt a přiřadila jej proměnné nástroje Ant, kterou zadáme (v tomto případě
"tptp.test.verdict".)
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Definovat společné vlastnosti pro všechny automatizovatelné služby --> <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" />
<!-- Definovat lokální vlastnosti skriptu, které se mění podle instalace --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/>
<target name="main" depends="test-execution, test-results-interrogation"/>
<!-- Provést testovací sady za použití výchozího názvu výsledků --> <target name="test-execution"> <echo message="Provádí se testovací sada..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}"> <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Prozkoumat výsledky testovací sady pro verdikt --> <target name="test-results-interrogation"> <echo message="Zkoumají se výsledky testovací sady..." /> <condition property="tptp.test.success"> <tptp:interrogation verdictproperty="tptp.test.verdict"> <filelist refid="tptp.test.results"/> </tptp:interrogation> </condition> <echo message="Celkový verdikt výsledků testu je: '${tptp.test.verdict}'" /> </target>
</project>
Zkontrolujte, zda máte pro spuštění automatizovatelných služeb platformy TPTP správně nakonfigurovaný nástroj Ant
(ohledně spouštění testů z nástroje Ant viz výše uvedená část.) Níže uvedené příklady ukazují, jak použít úlohu tptp:execution ke spuštění více testů a jak použít úlohu tptp:publication k vygenerování sestav BIRT z výsledků těchto provedených testů. Publikační úloha také akceptuje vícenásobné nástroje Ant filesets
nebo filelists
, což vám umožňuje používat zástupné znaky nebo přímo specifikovat více souborů jako vstupy. V tomto příkladu provedeme všechny testovací sady v projektu TPTPJUnitTests a množina všech souborů .execution se nám vrátí jako filelist
v proměnné nástroje Ant, kterou zadáme (v tomto případě "tptp.test.results".) Potom tento filelist
předáme jako vstup do služby tptp:publication, která vygeneruje sestavu o provedení TPTP pomocí výchozí šablony sestavy (TestExecution.rptdesign, která se nachází v modulu plug-in org.eclipse.tptp.test.report.birt)
a umístí ji na určené místo (v tomto případě c:\temp\report.html.)
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Definovat společné vlastnosti pro všechny automatizovatelné služby --> <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" />
<!-- Definovat lokální vlastnosti skriptu, které se mění podle instalace --> <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"/>
<!-- Provést testovací sady za použití výchozího názvu výsledků --> <target name="test-execution"> <echo message="Provádí se testovací sada..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}"> <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Publikovat sestavu výsledků testovací sady -->
<target name="test-results-publication"> <echo message="Publikuje se sestava výsledků testovací sady..." /> <tptp:publication report="${report.publication.location}/report.html"> <filelist refid="tptp.test.results"/> </tptp:publication> </target>
</project>
Chování úlohy tptp:publication můžete přizpůsobit zadáním jiné šablony sestavy BIRT, například TabularReport.rptdesign, která se nachází v adresáři šablon modulu plug.in org.eclipse.tptp.test.report.birt. Chování můžete také přizpůsobit pomocí publikační služby publish-testsuites a poskytnutím testovacích sad jako vstupu do publikační služby namísto souborů s výsledky provedení testu. Pokud použijete publikační službu publish-testsuites a předáte soubory sady jako vstup do publikační služby, musíte také specifikovat počáteční a konečné datum pro okno sestavy (které bude použito k dotazování pracovní plochy pro vyhledání výsledků provedení v rámci tohoto časového okna.) Níže uvedený příklad ukazuje, jak spustit sestavu na všech testovacích sadách v projektu Test1, vybrat každý výsledek provedení za minulých 60 dní a vygenerovat sestavy pomocí návrhu tabulkové sestavy.
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Definovat společné vlastnosti pro všechny automatizovatelné služby --> <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" />
<!-- Definovat lokální vlastnosti skriptu, které se mění podle instalace --> <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"/>
<!-- Spustit sestavu --> <target name="main" depends="test-results-publication"/>
<target name="set-date-range"> <!-- Použít standardní mechanizmus nástroje Ant tstamp k určení požadovaného rozsahu dat --> <!-- Tento příklad používá rozsah mezi dneškem a 60 dní dříve --> <tstamp> <format property="startDateTime" pattern="MM/dd/rrrr hh:mm aa" offset="-60" unit="day"/> </tstamp> <tstamp> <format property="endDateTime" pattern="MM/dd/rrrr hh:mm aa"/> </tstamp> </target>
<!-- Publikovat sestavu výsledků testovací sady --> <target name="test-results-publication" depends="set-date-range"> <echo message="Publikuje se sestava výsledků testovací sady..." /> <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>
Testy lze provádět přímo z příkazového řádku a ze skriptů nadstavby, kdy vlastnosti testu jsou ve formátu argumentů příkazového řádku. Adaptéry klientské automatizace platformy TPTP poskytují soubor .bat a .cmd k používání pod Windows a soubor .sh , který je k dispozici při používání operačního systému Linux. V konfiguračním souboru je možné specifikovat dlouhé sady argumentů anebo často opakovaných argumentů , což minimalizuje množství psaní potřebného ke spuštění služby provedení testu z příkazového řádku. Adaptér objektu Automation Client se prezentuje jako textový soubor (pro dávkový soubor nebo pro skript) a jako komplementární komponenta Java -- obě musí existovat, pokud chceme provádět testy z příkazového řádku. Všechny poskytované adaptéry klientské automatizace platformy TPTP lze nalézt v tptp-automation-client.jar, i když ant-tptp.jar replikuje některý kód adaptéru ve tvaru souboru JAR pro nástroj Ant (to bylo provedeno, aby se dodrželo konzistentní pojmenování souboru JAR úlohy platformy TPTP s ostatními dostupnými úlohami nástroje Ant).
Vlastnosti služby provedení testu jsou nastaveny vkládáním předpon k názvům vlastností, kde pomlčka zajišťuje, že se také specifikuje domovská stránka nebo kořenový adresář platformy Eclipse.
Testy lze spouštět z jakékoliv aplikace Java; ve skutečnosti ostatní adaptéry klientské automatizace, jako např. adaptéry nástroje Ant a nadstavby, používají interně adaptéru Java jako záchytného bodu na sběrnici služby. Jediný požadavek při provádění testů z nějakého kódu Java je zajistit, aby na tptp-automation-client.jar byl náležitý odkaz (v platformě Eclipse se to překládá do přítomnosti knihovny na cestě sestavení projektu Java) a přirozeně, že platí také všechny typické požadavky platformy TPTP, jako např. že musí běžet řadič agentů.
Adaptér objektu Automation Client Java poskytuje velmi jednoduché rozhraní API na provádění testů se všemi specifikovatelnými vlastnostmi obsaženými ve standardním objektu vlastností Java. Následuje příklad na provedení stejného testu jako v předchozím příkladu na skript nástroje Ant. Povšimněte si, že identifikátor služby přenašený do metody provedení je identifikátor služby pro službu provedení testu platformy TPTP (tato služba podporuje všechny základní typy testů platformy TPTP) -- je také možné provádět jiné automatizovatelné služby, avšak obměnou identifikátoru a vlastností nakonfigurovaných v kódu níže uvedeném.
// Vytvoří adaptér Java sdružený se zadanou domovskou stránkou platformy Eclipse AutomationClientAdapter automation = new AutomationClientAdapter ("d:\\development\\eclipse"); // Vytvoří a konfiguruje objekt vlastností Properties properties = new Properties(); properties.setProperty("workspace", "D:\\development\\workspace"); properties.setProperty("project", "tests"); properties.setProperty("suite", "unit-tests/testA.testsuite"); // Provede službu pojmenovanou níže pomocí konfigurovaných vlastností automation.execute("org.eclipse.hyades.test.tools.core.execute", properties);
Související pojmy
Přehled rámce automatizovatelných služeb
Související úlohy
Spouštění testů ze skriptů a z aplikací
Související odkazy
Podporované vlastnosti služby provedení testu
(C) Copyright IBM Corporation 2005,2006. Všechna práva vyhrazena