gradle - Gradle 中的任务顺序执行问题
问题描述
我正在努力的项目迫使我分别测试所有项目的库。在这里,我简化了为测试这些库而定义的任务。
tasks.register('prepareStuffForLibrary_A') {}
tasks.register('prepareStuffForLibrary_B') {}
tasks.register('testLibrary_A') {
dependsOn prepareStuffForLibrary_A
finalizedBy connectedAndroidTest
}
tasks.register('testLibrary_B') {
dependsOn prepareStuffForLibrary_B
finalizedBy connectedAndroidTest
}
tasks.register('allTests') {
dependsOn testLibrary_A
dependsOn testLibrary_B
}
如您所见,对于每个测试,必须在调用之前完成一些准备任务connectedAndroidTest
。调用testLibrary_A
andtestLibrary_B
分别按预期工作。但是调用allTests
的行为并不完全符合我的预期。所以执行的任务的顺序如下:
Tasks to be executed: [task ':app:prepareStuffForLibrary_A', task ':app:testLibrary_A', task ':app:prepareStuffForLibrary_B', task ':app:testLibrary_B', task ':app:connectedAndroidTest', task ':app:allTestsDemo']
显然,这不是我想要达到的。我预期的执行顺序connectedAndroidTest
是在每次测试结束时执行。
你对如何在 Gradle 中做到这一点有什么建议吗?
解决方案
推荐阅读
- python-2.7 - Scrapy post请求被重定向到错误的页面
- c++ - C++ boost::get 和访问者
- ruby-on-rails - 使用本地表单生成器变量从控制器渲染部分?
- java - Spring-batch:如何在 Spring Batch 中使用 ItemProcessor 的多线程运行处理器?
- ios - 有什么方法可以重新启动通过终端(Mac 终端)连接到 USB 端口的 iOS 设备并通过命令行输入 appleid?
- sql-server - 从 SQL Server 代理作业运行批处理文件
- docusaurus - Docusaurus 中的自定义登录页面
- javascript - 在 JavaScript 中删除目标 _blank
- javascript - Vue: component failed to update $parent
- ftp - 检查文件时 Apache Camel FTP 挂起