ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
912
912
EMPFEHLEN
-
11.02.10 16:29 #1
- Registriert seit
- Apr 2007
- Beiträge
- 3
Hi @all,
ich hab hier einige Tests die im Rahmen von Integrations Tests für Maven in TestNG geschrieben wurden. Mittlerweile wurden einige Tests aber so wichtig das auch die Live Maschinen damit getestet werden sollen. Um dies nun möglichst sinnvoll zu machen gibt es einige Tests die verschiedene Werte ermitteln und an das Monitoringsystem weiterleiten um bei Grenzüberschreitungen einen Alarm auszulösen.
Es gibt einen Test z.B. ein Selenium Test innerhalb dessen wird eine Variable mit einem Wert befüllt.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
package com.keepcoding.test; import static org.testng.AssertJUnit.*; import org.testng.annotations.*; import com.thoughtworks.selenium.*; public class TestClass { private Selenium selenium; private Object myResult = null; @BeforeClass @Parameters({"selenium.host","selenium.port","selenium.browser","selenium.url"}) public void startSelenium(String host, String port, String browser, String url) { this.selenium = new DefaultSelenium(host, Integer.parseInt(port), browser, url); this.selenium.start(); this.selenium.open(url); } @AfterClass(alwaysRun=true) public void stopSelenium() { this.selenium.stop(); } @Test @Parameters({"search","expected"}) public void googling(String search, String expected) { try { [COLOR="Red"]myResult = new String("Irgendwas");[/COLOR] } catch (SeleniumException e) { fail(e.getMessage()); } } }
Die testng.xml:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="DevelEnvSuite" verbose="3"> <parameter name="selenium.host" value="localhost"></parameter> <parameter name="selenium.port" value="4444"></parameter> <parameter name="selenium.browser" value="*firefox3"></parameter> <parameter name="selenium.url" value="http://localhost:7080/"></parameter> <test name="MyFirstTestCase"> <parameter name="search" value="SearchString"></parameter> <parameter name="expected" value="ExpectedString"></parameter> <classes> <class name="com.keepcoding.test.TestClass"></class> </classes> </test> </suite>
Aufgerufen wird der Test durch ein Monitoringsystem durch folgendes:
Code :1 2 3 4 5
TestNG testng = new TestNG(); testng.setTestJar(fdo.getAbsolutePath()); testng.setOutputDirectory(tmp.getAbsolutePath()); testng.run(); status = testng.getStatus();
Wie komme ich an den Inhalt der Variablen myResult?
Vorab schon einmal vielen Dank.
-
12.02.10 15:32 #2
- Registriert seit
- Apr 2007
- Beiträge
- 3
Hiho
war eigentlich ganz einfach man definiert einen Listener und setzt im TestNG - Testcase das Attribute
Die Testclass
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
package com.keepcoding.test; import org.testng.ITestContext; import org.testng.annotations.AfterClass; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class TestClass { @Test @Parameters({"search","expected"," ITestContext"}) public void googling(String search, String expected, ITestContext ITestContext) { ITestContext.setAttribute("myResult", new String("Hello World")); } }
Die testng.xml
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="DevelEnvSuite" verbose="3"> <test name="MyFirstTestCase"> <parameter name="search" value="SearchString"></parameter> <parameter name="expected" value="ExpectedString"></parameter> <classes> <class name="com.keepcoding.test.TestClass"></class> </classes> </test> </suite>
Der Testaufrufer:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public static void runTest(){ File f = new File("PATH/TO/FILE"); System.out.println("file Exists? " + f.exists()); TestListenerAdapter tla = new TestListenerAdapter(); TestNG t = new TestNG(); t.setTestJar(f.getAbsolutePath()); t.addListener(tla); t.run(); List<ITestContext> lst = tla.getTestContexts(); for (ITestContext c : lst){ System.out.println("\n MyValues: " + c.getAttribute("myResult")); } System.out.println("end"); }
Ähnliche Themen
-
Jboss Seam mit TestNG
Von newil80 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 30.03.10, 15:46 -
Threads mehrere Return values
Von SCIPIO-AEMILIANUS im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 15.11.08, 11:47 -
Interessanter IBM Artikel über automatisches GUI testen mit TestNG
Von Thomas Darimont im Forum Java Technology NewsAntworten: 0Letzter Beitrag: 07.03.07, 23:44 -
IBM Artikel vergleicht TestNG mit JUnit 4
Von Thomas Darimont im Forum Java Technology NewsAntworten: 2Letzter Beitrag: 31.08.06, 09:26 -
TestNG als schicker Ersatz für JUnit?
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 21.10.05, 21:31





Zitieren
Login





