Maven 测试失败:找不到符号

SUP*_*MAN 2 java testng selenium maven

我正在尝试使用 Maven 设置测试。我在尝试运行命令“mvn test”时收到以下错误:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/dso/Documents/Eclipse-Workspace/MavenSample/src/test/java/MavenSample/MavenSample/RestAPITest.java:[3,30] cannot find symbol
  symbol:   class Test
  location: package org.testng.annotations
Run Code Online (Sandbox Code Playgroud)

mvn clean 和 mvncompile 对我来说都可以正常工作,没有错误。如果测试只是作为 testng 运行,那么测试本身也可以正常运行。mvn 测试完成后测试失败。下面是我的 pom.xml 文件的代码。

 <project xmlns="http://maven.apache.org/POM/4.0.0"    
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>MavenSample</groupId>
 <artifactId>MavenSample</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>MavenSample</name>
 <url>http://maven.apache.org</url>

 <properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <maven.compiler.source>1.6</maven.compiler.source>
   <maven.compiler.target>1.6</maven.compiler.target>
 </properties>


 <build>
   <pluginManagement>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <version>3.0.0-M3</version>
       </plugin>
     </plugins>
   </pluginManagement>
 </build>


<dependencies>

 <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>3.141.59</version>
</dependency>

 <!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
   <groupId>org.testng</groupId>
   <artifactId>testng</artifactId>
   <version>7.0.0-beta4</version>
   <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/io.rest-assured/rest-assured -->

   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>3.8.1</version>
     <scope>test</scope>
   </dependency>

 </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

Bro*_*her 6

您的问题是在编译时需要该库,并且您仅指定了“测试”范围。

尝试改变这一点:

<dependency>
   <groupId>org.testng</groupId>
   <artifactId>testng</artifactId>
   <version>6.14.3</version>
   <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

[更新] 在您使用的测试版中,“org.testng.annotations”包中没有测试注释。