2014-06-19 98 views
0

我在TestNG,Maven & IntelliJ中相當初學。我創建了一個新的maven項目,並在src/main/java下定義了一個'runtest'類。如果我在src/main/java下指定測試類,我可以通過testng.xml運行測試用例。從testng.xml文件中的其他路徑運行測試類

但是,我想在src/test/java中指定我的測試類。如果我指定在src/test/java下的任何測試類 'test1.java' 並運行,它給錯誤: 錯誤: 找不到類路徑中的類:JAVA/test1的

解決方法我已經嘗試過:

  1. 在testng.xml文件中,給出測試用例的完整路徑 - 從/ Users /(注意:我正在使用MAC)
  2. 在testng.xml文件中,給出測試用例的完整路徑 - 從src/
  3. 在maven-surefire-plugin下的pom.xml中指定了額外的類路徑(在這裏還指定了完整路徑,路徑從項目的基本目錄等)
  4. 我試圖清除緩存,但是沒有什麼區別

其他意見:

的IntelliJ顯示我,當我指定的testng.xml文件路徑錯誤。它給了我創建類XXXX的選項。當我點擊創建類 - 它給我2個位置(src/main/java & src/test/java)。我已經在src/test/java下有相應的測試類。爲什麼不接受?

我試圖檢查我的Mac路徑,但我沒有太大的成功。

任何幫助將不勝感激。

謝謝

根據評論,編輯我的問題。指定我的代碼細節。

我想從TestNG類中調用testng.xml文件。這裏是我的TestNG類: runtests.java in src/main/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可編輯給用戶。所以,如果有人想運行一個測試用例,他們可以編輯testng.xml並只運行一個測試用例。

這是我在配置/ testng.xml文件的testng.xml

套件名稱= 「測試」 詳細= 「0」
測試名稱= 「Test1的」

類名=「java的/測試1"

測試

在這裏的類名,我不能夠從其他位置添加類。我只能指定src/main/java中提到的類。我想指定src/test/java中提到的類。

還有一件事,我想要做的是:我想創建一個配置文件,這將與構建並將可編輯。所以,如果用戶想編輯配置文件(即更改服務器名稱等),用戶可以編輯配置文件並運行測試用例。

+0

請顯示您的完整pom文件? – khmarbaise

回答

0

首先,您應該找到應該命名爲*Test.java,Test*.javaTestCase*.java的單元測試到Maven src/test/java的相應文件夾中。 Furhtermore你永遠不應該在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的萬無一失,插件的配置事業補充的classpath,如果你找到了單元測試,如上面的例子進入正確的位置,它將在沒有任何補充配置的情況下工作。

如果你想使用TestNG的,你可以簡單地把一個依賴於你的POM文件,像這樣規模的測試:

<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.8.8</version> 
    <scope>test</scope> 
</dependency> 

除此之外,你不需要任何testng.xml文件或任何其他配置文件來運行你的Maven單元測試,也不用IntelliJ也不用Eclipse。

mvn clean package 

你也不需要配置Maven的萬無一失,這個插件將制定的:您只需使用下面的命令行(我建議纔去intot你的IDE首先測試)運行測試盒子。

+0

謝謝。一些更多信息: – user3263913

相關問題