2013-03-25 94 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

相关问题