2013-03-25 113 views
1

問題:是否可以運行位於一個Gradle項目中的JUnit測試,以及來自另一個項目的依賴關係?使用Gradle從另一個項目運行JUnit測試?

背景

考慮這個多項目設置:

product_1_configuration_with_tests/ 
feature_a_with_tests/ 
feature_b_with_tests/ 
common_integration_tests/ 
  • 爲了簡單起見,產品項目依賴於其他三個項目。沒有其他依賴關係存在。
  • common_integration_tests包含所有產品通用的集成測試,必須在產品的上下文(類路徑/依賴關係)中運行。
  • common_integration_tests不能對任何其他項目有任何依賴關係。
  • 通用集成測試的行爲根據運行時類路徑上的內容而有所不同。

這樣的通用集成測試如何運行?

嘗試

理想情況下,我想在產品項目要定義的測試任務。我曾嘗試包括該套件集成測試:

// In product_1_configuration_with_tests/build.gradle 
task integrationTest(type: Test) { 
    include '**/MyIntegrationTest.class' 
} 

由於測試任務不找它駐留在另一模塊試驗中,沒有執行測試。

+0

我已經看到[這個問題](http://stackoverflow.com/q/8730087/384617),但答案在這種情況下沒有幫助。 – 2013-03-25 10:55:33

+0

你能更具體嗎?什麼是確切的問題,你有什麼嘗試,爲什麼沒有工作,等等?另外,項目之間的確切依賴關係是什麼? – 2013-03-25 11:01:21

+0

我試圖澄清我的問題。現在更容易理解嗎? – 2013-03-25 12:19:01

回答

0

要麼你聲明的集成測試源作爲一個單獨的源集product_1_configuration_with_tests項目(該項目common_integration_tests放棄)的,或者您從申報上common_integration_tests一個product_1_configuration_with_tests依賴。在綠地項目中,前者將是更好的方法,但後者也可以。其他解決方案是不必要的複雜。

common_integration_tests不能對任何其他項目有任何依賴關係。

爲什麼?

+0

它可以更具體地不對任何產品項目有任何依賴性。這是因爲我們希望能夠在許多產品中重用集成測試,並且我們的產品之間不存在依賴關係。 – 2013-03-25 15:42:49

+0

這改變了遊戲。產品是否是同一個Gradle版本的一部分? – 2013-03-25 16:57:48

+0

不,每個產品都是單獨構建的(但都是使用Gradle構建的)。 – 2013-03-26 12:51:27

相關問題