通过pom.xml执行主类
问题描述:
伙计们,我知道我在问一个非常愚蠢的问题,但我很好奇,为什么我的测试没有运行。通过pom.xml执行主类
我已经创建了一个简单的maven项目(没有junits等只是一个简单的主类)与一个唯一的主类在测试文件夹,我试图通过pom.xml执行相同的。
我已经通过现有的问题了是在这里,但没有解决问题
当我试着执行它时,我得到了下面的输出。
Running samplemav.TestOne
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec
的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>samplemav</groupId>
<artifactId>samplemav</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<includes>
<include>samplemav.TestOne</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
的Java类
package samplemav;
public class TestOne {
public static void main(String args[]){
System.out.println("test");
}
}
问候
答
您可能需要使用JUnit单元测试。
package samplemav;
import org.junit.Test;
public class TestOne {
@Test
public void test() {
System.out.println("test");
}
}
并添加测试依赖你pom.xml
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
答
我不知道有关的意见问题的讨论。 根据我的理解,你可以通过mvn命令执行主应用程序。检查下面的链接。
Building and Running a Java SE Application by Using Maven
遵循文档中提到的说明。
在你的情况下要执行的命令将
MVN高管:JAVA -Dexec.mainClass = “samplemav.TestOne”
我假设你可能没有提供的settings.xml路径
您正在使用maven-surefire-plugin构建您的应用程序,显然它会尝试执行测试项目。现在因为里面没有课,它显然会给你你收到的输出。
这不是单元测试的工作方式。 Maven在运行单元测试时不执行'main'。 – Oleg
所以你的意思是说我们不能直接执行主要程序 – shaik
是的,你需要用'@ Test'注解创建测试方法,maven将运行它们中的每一个。检查@ Firoj的答案链接。 – Oleg