2017-08-15 57 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