Ich habe eine TestNG-Testklasse, die ich ausführen möchte, wäre der Classpath kein Problem würde der Aufruf wie folgt aussehen:
java org.testng.TestNG testng.xml
Im folgenden werde ich auch der Vollständigkeit zuliebe den Inhalt der xml- und der java-Datei angeben. Das Problem liegt aber soweit mir bekannt ist ausschließlich im Classpath
testng ist eine extrem einfache XML-Datei, die nur den Namen der zu testenden Klasse enthält:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="MyTest">
<classes>
<class name="test.TestClass"/>
</classes>
</test>
</suite>
TestClass ist eine extrem einfache TestClasse
Das Layout der Verzeichnisse ist wie folgt, ich befinde mich in der Komandozeile im Verzeichnis Test/. Im Verzeichnis Test/libs liegt die jar-Datei testng-5.12.1.jar, die die Klassen org.testng.TestNG und org.testng.Assert sowie die Annotation import org.testng.annotations.Test enthält.
Die testng.xml liegt in Test/. Die Klasse TestClass im Package test findet sich im Verzeichnis Test/classes/test/TestClass.
javac kriege ich ja mit
>>>>>>>>>>>>>>>>>
javac -extdirs libs/ classes/test/TestClass.java
<<<<<<<<<<<<<<<<
noch hin und bei java finde ich sogar noch die jar-Datei aber nicht mehr die class-Datei:
>>>>>>>>>>>>>>>>
java -cp classes/ -jar libs/testng-5.12.1.jar testng.xml
<<<<<<<<<<<<<<<<
Dies führt zur Fehlermeldung von TestNG:
[ERROR]:
Cannot find class in classpath: test.TestClass
Wie setze ich den Classpath korrekt?
java org.testng.TestNG testng.xml
Im folgenden werde ich auch der Vollständigkeit zuliebe den Inhalt der xml- und der java-Datei angeben. Das Problem liegt aber soweit mir bekannt ist ausschließlich im Classpath
testng ist eine extrem einfache XML-Datei, die nur den Namen der zu testenden Klasse enthält:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="MyTest">
<classes>
<class name="test.TestClass"/>
</classes>
</test>
</suite>
TestClass ist eine extrem einfache TestClasse
Java:
package test;
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestClass
{
@Test
public void testSuccess()
{
//success
}
@Test
public void testFail()
{
Assert.fail( "this should fail" );
}
@Test( dependsOnMethods={"testFail"} )
public void testSkipped()
{
//should be skipped
}
}
Die testng.xml liegt in Test/. Die Klasse TestClass im Package test findet sich im Verzeichnis Test/classes/test/TestClass.
javac kriege ich ja mit
>>>>>>>>>>>>>>>>>
javac -extdirs libs/ classes/test/TestClass.java
<<<<<<<<<<<<<<<<
noch hin und bei java finde ich sogar noch die jar-Datei aber nicht mehr die class-Datei:
>>>>>>>>>>>>>>>>
java -cp classes/ -jar libs/testng-5.12.1.jar testng.xml
<<<<<<<<<<<<<<<<
Dies führt zur Fehlermeldung von TestNG:
[ERROR]:
Cannot find class in classpath: test.TestClass
Wie setze ich den Classpath korrekt?