2013-06-05 63 views
1

我在我的日食中導入了maven項目。現在我需要開始對其進行更改並使用集成測試(在App服務器外)對其進行測試。目前,集成測試使用openEJB容器在服務器上運行。Maven項目編譯和測試代碼的過程是什麼?

我的基本問題是,使用Maven進行編譯,構建和測試的常規過程是什麼?

  1. mvn install
  2. 的Maven - >更新項目。
  3. 運行在命令行中我的測試

是它是如何做的?我特別想知道mvn install命令。 我應該在測試之前先做三個步驟?

例如:我只是想打印一些東西,看看輸出是什麼。爲此,我想我需要完成所有這些步驟?

openEJB容器需要類,所以它可以加載它們。

回答

0

是的,mvn isntall是最受歡迎的選擇。它編譯,打包和測試你的項目。

1

如果是Eclipse項目,最合理的做法是不要使用命令行,而是使用Eclipse。假設您安裝了m2e插件,請轉至your_project->run as->Maven test並運行它。

你不需要既不install也不package階段運行了測試,package將創建不需要做檢查罐子,install會複製這個jar到本地回購這也是無用的。當Maven運行測試時,它使用來自目標目錄的編譯類,如果它存在,它將忽略項目的jar。

+0

好吧。它必須建立整個項目。項目中不包含集成測試。它的設置分開。基本上,項目需要更新更新的編譯庫(類)。我應該仍然跳過mvn安裝? –

+0

如果集成測試是一個單獨的項目,那麼如果你從maven運行測試,那麼它將使用本地回購的主項目jar。如果你從Eclipse運行它,它將使用目標/類。爲了避免混淆,最好從Eclipse運行測試 –

+0

集成測試只是一個文件,它沒有任何pom。它的TestNG測試文件。它只需要它使用的類/包。我的問題是,如何獲取更新的類到這個文件。所以要生成我需要運行mvn install/package或者只是編譯? mvn編譯,編譯並創建新的類。但是我的測試程序如何識別更新類文件是否不在構建路徑中? –

2

首先一個美妙的Maven的快速參考手冊,你應該知道,單元測試和集成測試是分開的,是由各自的插件,並在行家生命週期的不同部分運行。單元測試使用surefire運行,集成測試使用failsafe運行。

您想運行集成測試和故障保護文件說:

注:運行集成測試時,你應該調用行家與(短至太有型)

mvn verify

而不是試圖直接調用integration-test階段...

Th是直接在maven中運行集成測試的最佳方式。它將運行必要的所有前面的步驟(例如:compile)以運行集成測試。它不會浪費時間做安裝,因爲install之後立即發生verify

但是,如果您在本地運行測試,那麼直接在IDE中運行集成測試可能是一個更好的主意。這會給你一個更快的反饋循環。

+0

簡單的問題:如果我在沒有安裝/包的情況下進行mvn編譯,新的類文件是否包含在項目中,並可用於我的集成測試文件。集成測試是一個文件,我從命令行運行它。 –

+1

簡單的答案是,「不」。 AFAIK,集成測試使用'package'的結果。複雜的答案是,你不能在沒有本質上運行package的情況下運行'verify'。 'package'也會運行。我想可以直接運行'failsafe:integration-test'和'failsafe:verify'來跳過前面的所有步驟。 –

相關問題