2017-08-15 41 views
0

伙计们,我知道我在问一个非常愚蠢的问题,但我很好奇,为什么我的测试没有运行。通过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"); 
    } 

} 

问候

+0

这不是单元测试的工作方式。 Maven在运行单元测试时不执行'main'。 – Oleg

+0

所以你的意思是说我们不能直接执行主要程序 – shaik

+2

是的,你需要用'@ Test'注解创建测试方法,maven将运行它们中的每一个。检查@ Firoj的答案链接。 – Oleg

回答

0

您可能需要使用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> 
1

我不知道有关的意见问题的讨论。 根据我的理解,你可以通过mvn命令执行主应用程序。检查下面的链接。

Building and Running a Java SE Application by Using Maven

遵循文档中提到的说明。

在你的情况下要执行的命令将

MVN高管:JAVA -Dexec.mainClass = “samplemav.TestOne”

我假设你可能没有提供的settings.xml路径

您正在使用maven-surefire-plugin构建您的应用程序,显然它会尝试执行测试项目。现在因为里面没有课,它显然会给你你收到的输出。

+0

不知道你为什么发布这个,尽管OP完全困惑并且只是试图执行他的应用程序,这一行“为什么我的测试没有运行”,他的评论并且他接受关于如何运行单元测试的答案都非常强烈地表明这个问题是关于如何运行测试。 – Oleg

+0

它根据题为“通过pom.xml执行主类”的问题,这就是他所说的正在尝试做的事情。至少他会知道并理解他正在或想要实现的是错误的,并且他错误地构思了他的问题。 – Acewin

+0

准确地说,评论说:“所以你的意思是说我们不能直接执行主要任务”,你肯定了错误的概念。 – Acewin