Fehler: package org.testng.Anmerkungen nicht vorhanden [javac] import org.testng.Anmerkungen.Test;
Habe ich ein einfaches Projekt, das ich bin versucht zu bauen mit Hilfe von Ant. Mein Projekt enthält testng, aber ich bekomme eine Fehlermeldung, wenn ich versuche, führen Sie den build aus. Könnten Sie mir bitte helfen? Ich habe viel Zeit damit verbracht, zu versuchen, um zu sehen, was das problem aber ohne Ergebnis bisher.
Hier ist das Projekt:
package selenium;
import org.testng.annotations.Test;
public class HomePage {
@Test
public void test(){
System.out.println("this is test");
}
}
Nun habe ich eine lib-Datei, die enthält die testng.jar und ich habe eine test.xml suite, läuft Klasse, und hier ist mein build-Datei:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Concep.TestAutomation" basedir="." default="all">
<property name="src.dir" value="${basedir}/src" />
<property name="build.dir" value="target" />
<property name="classes.dir" value="${build.dir}/classes" />
<property name="suites.dir" value="suites" />
<property name="testng.path" value="lib/testng.jar" />
<property name="testreport.dir" value="${build.dir}/test-output" />
<target name="clean" description="Delete the build directory.">
<delete dir="${build.dir}" />
</target>
<target name="init" depends="clean" description="Create build directories.">
<!--Create the build directory structure used by compile -->
<mkdir dir="${build.dir}" />
<mkdir dir="${classes.dir}" />
<mkdir dir="${testreport.dir}" />
</target>
<target name="compile" depends="init" description="Compile tests.">
<!-- Compile the java code from ${src} into ${classes.dir} -->
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" />
</target>
<target name="run-test" depends="compile" description="Run test suite.">
<!-- Run a testng suite-->
<taskdef resource="testngtasks" classpath="${testng.path}" />
<testng classpathref="${testng.path}" outputDir="${testreport.dir}" haltonfailure="true" verbose="5">
<xmlfileset dir="${suites.dir}" includes="IA-smoke-test.xml" />
</testng>
</target>
<target name="all" depends="run-test" description="Executes all targets." />
<target name="all-debug" description="outputs all vars in use.">
<!-- useful to diagnose runtime problems -->
<echo message="'work.dir' = '${basedir}/..'"/>
<echo message="'lib.dir' = '${basedir}/lib'"/>
<echo message="'src.dir' = '${basedir}/src'"/>
<echo message="'config.dir' = '${basedir}/config'"/>
<echo message="'build.dir' = 'target'"/>
<echo message="'classes.dir' = '${build.dir}/classes'"/>
<echo message="'suites.dir' = '${basedir}/suites'"/>
<echo message="'testng.path' = '${basedir}/lib/testng.jar'"/>
</target>
</project>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Selbst hatte ich angesichts dieses Problem und habe eine Lösung für das gleiche.
In Ihrem pom.xml Datei entfernen, den Umfang und das sollte funktionieren.
Als pro untenstehenden code in pom.xml entfernen Sie die Umfang tag.
Haben, obwohl wir importiert die maven dependency für Testng, wenn Sie hinzufügen, Rahmen-tag in der XML-Datei, behandelt es als JUnit-annotation und nicht wie Testng. Also, wenn ich entfernt scope-tag, My @Test-Annotation behandelt wurde, als Testng Annotation.
also hier, wie ich das Problem behoben wurde, auf das compile-target eine Eigenschaft fehlt, die der "classpathref", von wo aus das Projekt sieht alle notwendigen Bibliotheken, um es zu kompilieren, ohne die "classpathref" das Projekt sieht keine externen system, so habe ich Folgendes getan, um es zu beheben,
HTML:
und in meine Kompilier-Ziel habe ich die folgende Eigenschaft
HTML: