我在TestNG,Maven& amp;的IntelliJ。我创建了一个新的maven项目,并定义了一个“测试版”' src / main / java下的类。如果我在src / main / java下指定测试类,我可以通过testng.xml运行测试用例。
但是,我想在src / test / java中指定我的测试类。如果我指定任何测试类' test1.java'在src / test / java和run下,它给出了错误: 错误: 在classpath中找不到类:java / test1
我已经尝试过的解决方法:
其他观察:
当我在testng.xml文件中指定路径时,Intellij向我显示错误。它为我提供了创建XXXX类的选项。当我点击创建类时 - 它给了我2个位置(src / main / java& src / test / java)。我已经在src / test / java下有各自的测试类。为什么不接受?
我试图在Mac上检查我的类路径,但我没有取得多大成功。
任何帮助将不胜感激。
由于
根据评论,编辑我的问题。指定我的代码详细信息。
我想从TestNG类调用testng.xml文件。这是我的TestNG类: src / main / java中的runtests.java
public static TestNG testng;
public static void main(String[] args) {
try {
testng = new TestNG();
testng.setPreserveOrder(true);
testng.setVerbose(0);
testng.setTestSuites(Arrays.asList("config/testng.xml"));
testng.run();
}
catch (Exception e) {
//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
我想这样做的原因是,我想创建maven构建,我想指定可编辑的testng.xml给用户。因此,如果有人只想运行1个测试用例,他们可以编辑testng.xml并只运行1个测试用例。
这是我在config / testng.xml
中的testng.xml套件名称="测试"冗长=#&34; 0"
测试名称="测试1"
班
class name =" java / test1"
班
测试
这里的类名,我无法从其他位置添加类。我只能指定src / main / java中提到的类。我想指定src / test / java中提到的类。
还有一件事,我想做的是:我想创建一个配置文件,它将与build一起使用并且可以编辑。因此,如果用户想要编辑配置(即更改服务器名称等),用户可以编辑配置文件并运行测试用例。
答案 0 :(得分:0)
首先,您应该将您的单元测试找到*Test.java
,Test*.java
或TestCase*.java
,并将其命名为Maven src/test/java
中的相应文件夹。此外,您永远不应该在Maven项目中定义完整路径,如果您使用的是Mac / Linux / Windows Box或其他任何内容,则无关紧要。
因此,作为示例,文件夹布局如下所示:
.
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── soebes
│ └── training
│ └── maven
│ └── simple
│ └── BitMask.java
└── test
├── java
│ └── com
│ └── soebes
│ └── training
│ └── maven
│ └── simple
│ └── BitMaskTest.java
└── resources
└── log4j.properties
此外,您不需要在maven-surefire-plugin配置中定义补充类路径,如果您将上面示例中的单元测试定位到正确的位置,它将在没有任何补充配置的情况下工作。
如果你想使用TestNG,你可以简单地在你的pom文件中添加一个依赖项,并使用这样的范围测试:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope>test</scope>
</dependency>
除此之外,您不需要任何testng.xml
文件或任何其他配置文件来运行Maven,IntelliJ或Eclipse的单元测试。您只需使用以下命令行运行测试(建议您在进入IDE之前先测试):
mvn clean package
您也不需要配置maven-surefire-plugin,这将开箱即用。