我有一个gradle多项目,我的war文件构建在一个子项目中,我的集成测试在另一个子项目中。我已经读到gretty应该能够启动jetty实例,让我在构建期间运行集成测试,但我不知道如何将gretty integrationTestTask任务“连接”到另一个子项目中的任务,从中运行实际测试。
我的项目结构如下所示:
root/
int-test/
build.gradle
web/
build.gradle
build.gradle
settings.gradle
根目录/设置。格雷德尔:
include ':web'
include ':int-test'
根/构建。格雷德尔:
apply plugin: 'java'
root/web/build。格雷德尔:
apply plugin: 'war'
apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'
gretty {
contextPath = '/'
integrationTestTask = 'intTests'
}
task intTests << {
println 'This task will run in just the right time'
}
root/int测试/构建。格雷德尔:
apply plugin: 'java'
task intTests << {
println 'All integration testing is done in here'
}
当我运行"./gradlew-q intTest"时,输出如下:
All integration testing is done in here 2014-12-11 15:37:02.046 INFO - Logging initialized @1157ms 2014-12-11 15:37:02.554 INFO - jetty-9.2.3.v20140905 2014-12-11 15:37:02.682 WARN - ServletContainerInitializers: detected. Class hierarchy: empty 2014-12-11 15:37:03.114 INFO - Started o.a.g.JettyWebAppContext@7da22e4a{/,file:/Users/fredrik/callista/dev/grettyfitnesse/web/build/inplaceWebapp/,AVAILABLE} 2014-12-11 15:37:03.130 INFO - Started ServerConnector@2590ae17{HTTP/1.1}{0.0.0.0:8080} 2014-12-11 15:37:03.130 INFO - Started @2245ms 2014-12-11 15:37:03.137 WARN - Jetty 9.2.3.v20140905 started and listening on port 8080 2014-12-11 15:37:03.158 WARN - runs at: 2014-12-11 15:37:03.159 WARN - http://localhost:8080/ This task will run in just the right time 2014-12-11 15:37:03.221 INFO - Stopped ServerConnector@2590ae17{HTTP/1.1}{0.0.0.0:8080} 2014-12-11 15:37:03.229 INFO - Stopped o.a.g.JettyWebAppContext@7da22e4a{/,file:/Users/fredrik/callista/dev/grettyfitnesse/web/build/inplaceWebapp/,UNAVAILABLE} 2014-12-11 15:37:03.232 WARN - Jetty 9.2.3.v20140905 stopped. Server stopped.
因此,web项目中的intTests任务将在正确的时间运行,但int测试项目中的intTests任务将在早期运行(在web服务器启动之前) 我如何设置它,使gretty插件“连接”到我的int测试项目中定义的intTests任务
我尝试过的事情:*设置“集成测试任务=”: int-test: intTest”,希望它足以指定gretty应该在哪个子项目中寻找正确的任务。结果——jetty甚至还没有启动。*在根中创建intTest任务build.gradle尝试在int-test中扩展该任务。结果——没有区别。*在网络项目中向intTest任务添加了一个依赖项(“: int-test: intTest”)。结果——没有区别
首先,检查是否gretty。integrationTestTask=“:int test:intTests”
有效。如果没有,请将以下内容添加到int tests/build中。格雷德尔
:
intTests {
dependsOn(":web:taskThatStartsTheWebServer")
finalizedBy(":web:taskThatStopsTheWebServer")
}
(您可以在Gretty文档或gradle tasks
的输出中找到任务名称)
请注意,它是task foo{dependsOn“bar”}
,而不是task foo
在我的多项目中,我正在根项目上运行测试任务,并期望它将在子项目上运行测试任务并生成一个测试报告。我观察到的是,它从来没有在子项目上运行测试任务。我的期望是不正确的吗?“我需要在我的gradle脚本中进行任何特殊配置吗? 请注意,我的根项目中没有测试。
我试图让Jenkins在我的项目上运行。事实上,有一个父build.gradle子项目似乎是个问题。 当运行时,我得到: 12: 14:17坑 12: 14:17坑 12: 14:17坑 线程“main”组织中出现异常。最可怜的。util。PitError:覆盖率生成仆从异常退出。请检查类路径。 我尝试只为子项目配置pitest,正如一些帖子中所建议的那样,但没有任何区别 如果我尝试在子项目上运行
使用IntelliJ IDEA 14.0.2,我导入了一个gradle java项目。我们已经建立了一个源集和配置来将集成测试与单元测试分开。(我们的集成测试在测试源树中,但在它们自己的包中)。Build.Gradle的相关部分是: 或者,如何根据“--tests”arg的内容将测试任务委托给另一个任务?
我正在构建一个定制的Java库。我把我的大部分“重复”代码都保存在那里,比如文件处理、字符串处理等。每次我想使用它们时,我都必须将该类复制并粘贴到我正在进行的其他项目中。有没有办法让这个自定义库类成为“依赖项”?我在用我的智能手机。
我使用gradle创建了一个项目,并创建了gradle包装器。如何确保项目在没有安装gradle的机器上构建和运行?
我面临以下问题。我有一个多模块的Gradle项目。一个模块是我的根项目,第二个模块是集成测试。 为了让我的集成测试运行,复制任务需要首先运行,以便将一些资产移动到项目根目录上的文件夹中。 我已经在我的根项目上定义了这样一个任务,当我试图调用它时,它什么也不做(我尝试了几种不同的调用方式)。 由于失败,我继续在子项目本身上创建了以下任务: 这是我的另一个任务。我的目标是让它将根项目类以及在下生成的j